|
- #pragma GCC optimize(2)
- #pragma GCC optimize(3)
- #pragma GCC optimize("Ofast")
- #pragma GCC optimize("inline")
- #pragma GCC optimize("-fgcse")
- #pragma GCC optimize("-fgcse-lm")
- #pragma GCC optimize("-fipa-sra")
- #pragma GCC optimize("-ftree-pre")
- #pragma GCC optimize("-ftree-vrp")
- #pragma GCC optimize("-fpeephole2")
- #pragma GCC optimize("-ffast-math")
- #pragma GCC optimize("-fsched-spec")
- #pragma GCC optimize("unroll-loops")
- #pragma GCC optimize("-falign-jumps")
- #pragma GCC optimize("-falign-loops")
- #pragma GCC optimize("-falign-labels")
- #pragma GCC optimize("-fdevirtualize")
- #pragma GCC optimize("-fcaller-saves")
- #pragma GCC optimize("-fcrossjumping")
- #pragma GCC optimize("-fthread-jumps")
- #pragma GCC optimize("-funroll-loops")
- #pragma GCC optimize("-fwhole-program")
- #pragma GCC optimize("-freorder-blocks")
- #pragma GCC optimize("-fschedule-insns")
- #pragma GCC optimize("inline-functions")
- #pragma GCC optimize("-ftree-tail-merge")
- #pragma GCC optimize("-fschedule-insns2")
- #pragma GCC optimize("-fstrict-aliasing")
- #pragma GCC optimize("-fstrict-overflow")
- #pragma GCC optimize("-falign-functions")
- #pragma GCC optimize("-fcse-skip-blocks")
- #pragma GCC optimize("-fcse-follow-jumps")
- #pragma GCC optimize("-fsched-interblock")
- #pragma GCC optimize("-fpartial-inlining")
- #pragma GCC optimize("no-stack-protector")
- #pragma GCC optimize("-freorder-functions")
- #pragma GCC optimize("-findirect-inlining")
- #pragma GCC optimize("-fhoist-adjacent-loads")
- #pragma GCC optimize("-frerun-cse-after-loop")
- #pragma GCC optimize("inline-small-functions")
- #pragma GCC optimize("-finline-small-functions")
- #pragma GCC optimize("-ftree-switch-conversion")
- #pragma GCC optimize("-foptimize-sibling-calls")
- #pragma GCC optimize("-fexpensive-optimizations")
- #pragma GCC optimize("-funsafe-loop-optimizations")
- #pragma GCC optimize("inline-functions-called-once")
- #pragma GCC optimize("-fdelete-null-pointer-checks")
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- using namespace std;
- typedef long long ll;
- int n,m,i;
- struct farmer
- {
- int p,a;
- }f[5010];
- ll c;
- bool cmp(farmer x,farmer y){return x.p<y.p;}
- int getint()
- {
- int w = 0, q = 0;
- char c = getchar();
- while ((c < '0' || c > '9') && c != '-') c = getchar();
- if (c == '-') q = 1, c = getchar();
- while (c >= '0' && c <= '9') w = w * 10 + c - '0', c = getchar();
- return q ? -w : w;
- }
- int main()
- {
- n=getint();m=getint();
- for(i=1;i<=m;i++) f[i].p=getint(),f[i].a=getint();
- sort(f+1,f+m+1,cmp);
- i=1;while(n>0)
- {
- if(n>f[i].a) {n-=f[i].a;c+=f[i].p*f[i].a;i++;}
- else {c+=n*f[i].p;n=0;}
- }
- cout<<c;
- return 0;
- }
复制代码 |
|