2 条题解
-
1
using namespace std; string a; long long sum=0; int main(){ cin>>a; int n=a.size(); for(int i=0;i<n;i++){ if((a[i]-'0')%5==0){ sum+=i+1; }else if(i>0&&((a[i-1]-'0')*10+a[i]-'0')%4==0){ if((a[i]-'0')%4==0){ sum++; } sum+=i; }else if((a[i]-'0')%4==0){ sum++; } } cout<<sum; return 0; } -
1
只需用sort排序,再注意判断即可
code
#include <bits/stdc++.h> using namespace std; int n; struct s{ int m; int e; int c; int p; }a[100050]; bool cmp(s x,s y){ if(x.c+x.e+x.m+x.p!=y.c+y.e+y.m+y.p){ return x.c+x.e+x.m+x.p>y.c+y.e+y.m+y.p; } else if(x.m!=y.m){ return x.m>y.m; } else if(x.c!=y.c){ return x.c>y.c; } else if(x.e!=y.e){ return x.e>y.e; } } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].m>>a[i].e>>a[i].c>>a[i].p; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++){ cout<<a[i].m<<" "<<a[i].e<<" "<<a[i].c<<" "<<a[i].p<<endl; } return 0; }
- 1
信息
- ID
- 164
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 277
- 已通过
- 39
- 上传者
京公网安备 11011102002149号