标签:codeforces
A题 我只想说题意很坑,一不小心就会wa,哎,不机智的我竟然在最后判题的过程中错了,少加一个判断语句。错的值了,你说呢?
#include<map> #include<cmath> #include<queue> #include<vector> #include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> #define pi acos(-1.0) #define inf 0xfffffff #define maxn 5000 using namespace std; int m,n; struct node { int u; int v; } a[maxn]; int main() { scanf("%d%d",&m,&n); int flag=0; int sum=0; for(int i=1;i<=m;i++) { scanf("%d%d",&a[i].u,&a[i].v); if(a[i].u<n) flag=1; if(a[i].u==n&&a[i].v==0) flag=1; a[i].v=100-a[i].v; if(a[i].u<n||(a[i].u==n&&a[i].v==0)) if(a[i].v!=100) sum=max(sum,a[i].v); } if(flag==0) cout<<"-1"<<endl; else cout<<sum<<endl; return 0; }B题,找出在这个过程中最大的那个负数,然后取绝对值就行了。
#include<map> #include<cmath> #include<queue> #include<vector> #include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> #define pi acos(-1.0) #define inf 0xfffffff #define maxn 500000 using namespace std; int n; __int64 a[maxn]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%I64d",&a[i]); a[0]=0; __int64 sum=0; __int64 maa=maxn*100; for(int i=1;i<=n;i++) { sum=a[i-1]-a[i]; maa=min(maa,sum); a[i]+=sum; // cout<<sum<<" "<<a[i]<<endl; } if(maa<0) maa*=-1; cout<<maa<<endl; return 0; }
标签:codeforces
原文地址:http://blog.csdn.net/u011041349/article/details/38945979