#include<bits/stdc++.h>
using namespace std;
struct cowm{
int p,sum;
}a[5001];
bool cmp(cowm a,cowm b){return a.p<b.p;}
int main(){
int n,m,tot=0;
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>a[i].p>>a[i].sum;
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++){
if(a[i].sum<=n){
n=n-a[i].sum;
tot=tot+a[i].sum*a[i].p;
}
else{
tot=tot+n*a[i].p;
break;
}
}
cout<<tot;
return 0;
}
//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
int a[205],c[205];
struct ppx{
int val,id;
}b[205];
inline bool cmp(ppx x,ppx y){return x.val>y.val;}
int main(){
int m=read(),sum=read(),n=read();
if(m>=n){printf("%d\n",n);return 0;}
for(int i=1;i<=n;++i)a[i]=read();
sort(a+1,a+n+1);
for(int i=1;i<=n-1;++i){
b[i].val=a[i+1]-a[i];
b[i].id=i;
}
sort(b+1,b+n,cmp);
for(int i=1;i<=m-1;++i)c[i]=b[i].id;
sort(c+1,c+m);
int ans=0,last=1;
for(int i=1;i<=m-1;++i){
ans+=a[c[i]]-a[last]+1;
last=c[i]+1;
}
ans+=a[n]-a[last]+1;
printf("%d\n",ans);
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
int bj[20];
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
inline bool pd(int n){
while(n){
if(!bj[n%10])return 0;
n/=10;
}
return 1;
}
inline bool check(int x,int y){
int a=x*(y%10),b=x*(y/10),cnt=x*y;
if(a>999||b>999||cnt>9999)return 0;
if(pd(x)&&pd(y)&&pd(a)&&pd(b)&&pd(cnt))return 1;
else return 0;
}
int main(){
int n=read(),ans=0;
for(int i=1;i<=n;++i){int a=read();bj[a]=1;}
for(int i=100;i<1000;++i)
for(int j=10;j<100;++j)
if(check(i,j))++ans;
printf("%d\n",ans);
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
const int N=20;
int ans,to[N],nxt[N],visit[N];
struct ppx{int x,y;}a[N];
inline bool cmp(const ppx &x,const ppx &y){return x.y==y.y?x.x<y.x:x.y<y.y;}
inline bool pd_cycle(int x){
while(to[x]){
if(visit[x])return 1;
visit[x]=1;
x=nxt[to[x]];
}
return 0;
}
inline void dfs(int k,int n){
if(k>n){
int cnt=0;
for(int i=1;i<=n&&cnt==0;i++){
memset(visit,0,sizeof(visit));
if(pd_cycle(i))cnt=1;
}
ans+=cnt;
return;
}
else if(nxt[k])dfs(k+1,n);
else{
for(int i=k+1;i<=n;i++)
if(!nxt[i]){
nxt[i]=k;nxt[k]=i;
dfs(k+1,n);
nxt[i]=0;nxt[k]=0;
}
}
}
int main(){
int n=read();
for(int i=1;i<=n;++i)a[i].x=read(),a[i].y=read();
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n-1;++i)if(a[i].y==a[i+1].y)to[i]=i+1;
dfs(1,n);printf("%d\n",ans);
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
const int N=1005;
int ans,a[N];
int main(){
int n=read(),maxn=0,minn=1e9;
for(int i=1;i<=n;++i){
a[i]=read();
maxn=max(maxn,a[i]);
minn=min(minn,a[i]);
}
if(maxn-minn<=17){puts("0");return 0;}
int ans=1e9;
for(int i=0;i<=100;++i){
int now=0;
for(int j=1;j<=n;++j){
if(a[j]<i)now+=(i-a[j])*(i-a[j]);
if(a[j]>i+17)now+=(a[j]-i-17)*(a[j]-i-17);
}
ans=min(ans,now);
}
printf("%d\n",ans);
return 0;
}
//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
int main(){
int n=read();
int a=read();int b=read();int c=read();
int d=read();int e=read();int f=read();
int ans=0;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
if(((abs(i-a)<=2||abs(i-a)>=n-2)&&(abs(j-b)<=2||abs(j-b)>=n-2)&&(abs(k-c)<=2||abs(k-c)>=n-2))||((abs(i-d)<=2||abs(i-d)>=n-2)&&(abs(j-e)<=2||abs(j-e)>=n-2)&&(abs(k-f)<=2||abs(k-f)>=n-2)))ans++;
printf("%d\n",ans);
return 0;
}
原文:https://www.cnblogs.com/PPXppx/p/11262977.html