#include<iostream>#include<algorithm>#include<vector>usingnamespace std;constint maxn =11000;int a[maxn], b[maxn];constboolcmp(int a,int b){return a>b;}voidtag(int x){while(x!=1){if(x%2==0)b[x=x/2]=1;else b[x=(3*x+1)/2]=1;}}intmain(){int n; cin>>n;for(int i =1; i <= n; i++){
cin>>a[i];tag(a[i]);}
vector<int>ans;sort(a+1,a+n+1,cmp);for(int i =1; i <= n; i++)if(!b[a[i]])ans.push_back(a[i]);for(int i =0; i < ans.size()-1; i++)
cout<<ans[i]<<' ';
cout<<ans[ans.size()-1];return0;}
1006
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;intmain(){int n; cin>>n;int a[3]={0}, k=0;while(n!=0){
a[k++]=n%10;
n /=10;}for(int i =0; i < a[2]; i++)cout<<"B";for(int i =0; i < a[1]; i++)cout<<"S";for(int i =0; i < a[0]; i++)cout<<i+1;return0;}
1007
//求1-n有几对差为2的素数,直接枚举#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;intisprime(int x){for(int i =2; i*i<=x; i++)if(x%i==0)returnfalse;returntrue;}intmain(){int n; cin>>n;int ans =0;for(int i =5; i <= n; i++)if(isprime(i)&&isprime(i-2))
ans++;
cout<<ans<<"\n";return0;}
1008
//将长为n的数组右移m位,直接枚举#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;int a[110];intmain(){int n, m; cin>>n>>m;for(int i =1; i <= n; i++)cin>>a[i];int t = n-m%n;
vector<int>ans;for(int i = t+1; i <= n; i++)ans.push_back(a[i]);for(int i =1; i <= t; i++)ans.push_back(a[i]);for(int i =0; i < ans.size(); i++){if(i!=0)cout<<" ";
cout<<ans[i];}return0;}
//将长为n的数组右移m位,直接枚举#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;
stack<string>st;intmain(){int a, b, ok =0;while(cin>>a>>b){if(b!=0){if(ok==1)cout<<" ";
cout<<a*b<<" "<<b-1;
ok =1;}}if(ok==0)cout<<"0 0\n";return0;}
1011
//将长为n的数组右移m位,直接枚举#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;
stack<string>st;intmain(){int T; cin>>T;for(int i =1; i <= T; i++){
LL a, b, c; cin>>a>>b>>c;if(a+b>c)cout<<"Case #"<<i<<": true\n";else cout<<"Case #"<<i<<": false\n";}return0;}
1012
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;int a[1010], A[10];intmain(){int n; cin>>n;int op =1, cnt=0, a2=0;for(int i =1; i <= n; i++){
cin>>a[i];if(a[i]%5==0&& a[i]%2==0)A[1]+=a[i];if(a[i]%5==1){A[2]+= op*a[i]; op=-op; a2=1;}if(a[i]%5==2)A[3]++;if(a[i]%5==3){A[4]+=a[i]; cnt++;}if(a[i]%5==4)A[5]=max(A[5],a[i]);}for(int i =1; i <=5; i++){if(i!=1)cout<<" ";if(A[i]==0){if(i!=2)cout<<"N";else{if(a2==0)cout<<"N";else cout<<A[2];}}else{if(i==4)printf("%.1f",A[4]*1.0/cnt);else cout<<A[i];}}return0;}
#include<bits/stdc++.h>usingnamespace std;
string days[]={"MON","TUE","WED","THU","FRI","SAT","SUN"};intmain(){
string a, b, c, d;
cin>>a>>b>>c>>d;int len =min(a.size(),b.size());int ok =0;for(int i =0; i < len; i++){if(ok ==0){if(a[i]==b[i]&&(a[i]>='A'&&a[i]<='N')){
cout<<days[a[i]-'A']<<" ";
ok =1;}}else{if(a[i]==b[i]&&(isdigit(a[i])||(a[i]>='A'&&a[i]<='N'))){if(isdigit(a[i])){printf("%02d:",a[i]-'0');}else{//cout<<a[i]<<" ";printf("%02d:",a[i]-'A'+10);}break;}}}
len =min(c.size(), d.size());for(int i =0; i < len; i++){if(c[i]==d[i]&&isalpha(c[i])){printf("%02d\n",i);}}return0;}
1015
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;struct node{int id, de, cai;};boolcmp(node x, node y){if((x.de+x.cai)!=(y.de+y.cai))return(x.de+x.cai)>(y.de+y.cai);if(x.de!=y.de)return x.de>y.de;return x.id<y.id;}intmain(){int n, L, H; cin>>n>>L>>H;
node t; vector<node>vc[5];int sum = n;for(int i =1; i <= n; i++){
cin>>t.id>>t.de>>t.cai;if(t.de<L || t.cai<L)sum--;elseif(t.de>=H && t.cai>=H)vc[1].push_back(t);elseif(t.de>=H)vc[2].push_back(t);elseif(t.de<H && t.cai<H && t.de>=t.cai)vc[3].push_back(t);else vc[4].push_back(t);}
cout<<sum<<"\n";for(int i =1; i <=4; i++){sort(vc[i].begin(),vc[i].end(),cmp);for(int j =0; j < vc[i].size(); j++){
cout<<vc[i][j].id<<" "<<vc[i][j].de<<" "<<vc[i][j].cai<<"\n";}}return0;}
1016
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;intmain(){
LL a, da, b, db;
cin>>a>>da>>b>>db;
LL aa =0, bb =0;while(a){if(a%10==da)aa = aa*10+da;
a /=10;}while(b){if(b%10==db)bb = bb*10+db;
b /=10;}
cout<<aa+bb<<"\n";return0;}
1017
//每一位做除法#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;intmain(){
string a;int b; cin>>a>>b;int div =(a[0]-'0')/b, mod =(a[0]-'0')%b;if(div!=0|| a.size()==1)cout<<div;for(int i =1; i < a.size(); i++){
div =(a[i]-'0'+mod*10)/b;
cout<<div;
mod =(a[i]-'0'+mod*10)%b;}
cout<<" "<<mod;return0;}
1018
#include<bits/stdc++.h>usingnamespace std;intmain(){int n; cin>>n;int a=0, b=0, z1[30]={0}, z2[30]={0};for(int i =1; i <= n; i++){char x, y; cin>>x>>y;if(x==y)continue;if(x=='C'&&y=='J'|| x=='J'&&y=='B'|| x=='B'&&y=='C'){
a++; z1[x-'A']++;}else{
b++; z2[y-'A']++;}}
cout<<a<<" "<<n-a-b<<" "<<b<<"\n";
cout<<b<<" "<<n-a-b<<" "<<a<<"\n";int xx =1, yy =1;//WA1,2,4for(int i =0; i <26; i++){if(z1[i]>z1[xx])xx = i;if(z2[i]>z2[yy])yy = i;}
cout<<(char)(xx+'A')<<" "<<(char)(yy+'A')<<"\n";return0;}
1019
#include<bits/stdc++.h>usingnamespace std;intmain(){
string s; cin>>s;if(s.size()!=4)s =string(4-s.size(),'0')+s;do{
string b = s;sort(b.begin(),b.end());
string a = b;reverse(a.begin(),a.end());
string c =to_string(stoi(a)-stoi(b));if(c.size()!=4)c =string(4-c.size(),'0')+c;
cout<<a<<" - "<<b<<" = "<<c<<"\n";
s = c;}while(s !="6174"&& s!="0000");return0;}
#include<bits/stdc++.h>usingnamespace std;int a[110];intmain(){
string s; cin>>s;for(int i =0; i < s.size(); i++){
a[s[i]-'0']++;}for(int i =0; i <=9; i++){if(a[i]){
cout<<i<<":"<<a[i]<<"\n";}}return0;}
1022
//直接加起来转d进制,除d取余#include<bits/stdc++.h>usingnamespace std;intmain(){int a, b, d; cin>>a>>b>>d;int t = a+b;if(t==0){cout<<0;return0;}
vector<int>vc;while(t!=0){
vc.push_back(t%d);
t /= d;}for(int i = vc.size()-1; i >=0; i--)
cout<<vc[i];return0;}
1023
//找出1-9最小的输出,剩下的从0排到9就行#include<bits/stdc++.h>usingnamespace std;intmain(){int a[10], t=0;for(int i =0; i <10; i++){
cin>>a[i];if(!t && i && a[i]){
cout<<i; t =1; a[i]--;}}for(int i =0; i <10; i++)for(int j =0; j < a[i]; j++)
cout<<i;return0;}
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int begin, n, k;
cin>>begin>>n>>k;for(int i =1; i <= n; i++){int x; cin>>x; li[x].address = x;
cin>>li[x].data>>li[x].next;}int cnt =0;
vector<node>vc, ans;for(int i = begin; i !=-1; i=li[i].next){
vc.push_back(li[i]);
cnt++;if(cnt==k){reverse(vc.begin(),vc.end());
ans.insert(ans.end(),vc.begin(),vc.end());
vc.clear();
cnt =0;}}
ans.insert(ans.end(),vc.begin(),vc.end());for(int i =0; i < ans.size(); i++){printf("%05d %d ", ans[i].address,ans[i].data);if(i!=ans.size()-1)printf("%05d\n", ans[i+1].address);elseprintf("-1\n");}return0;}
1026
#include<bits/stdc++.h>usingnamespace std;intmain(){int a, b; cin>>a>>b;int n =((b-a)+50)/100;//四舍五入printf("%02d:%02d:%02d",n/3600, n%3600/60, n%3600%60);return0;}
1027
#include<bits/stdc++.h>usingnamespace std;intmain(){int n;char ch;
cin>>n>>ch;int h =sqrt((n+1)/2);for(int i = h; i >=1; i--){for(int j =1; j <= h-i; j++)cout<<" ";for(int j =1; j <=2*i-1; j++)cout<<ch;
cout<<"\n";}for(int i =2; i <= h; i++){for(int j =1; j <= h-i; j++)cout<<" ";for(int j =1; j <=2*i-1; j++)cout<<ch;
cout<<"\n";}
cout<<n+1-2*h*h<<endl;return0;}
1028
#include<iostream>usingnamespace std;intmain(){int n, sum=0; cin>>n;
string old,young,oldnum="2014/09/06", youngnum="1814/09/06";while(n--){
string a, b;
cin>>a>>b;if(b<"1814/09/06"|| b>"2014/09/06")continue;
sum++;if(b>=youngnum)young = a, youngnum=b;if(b<=oldnum)old=a, oldnum = b;}if(sum!=0)cout<<sum<<" "<<old<<" "<<young<<"\n";else cout<<sum<<"\n";return0;}
1029
#include<iostream>#include<algorithm>#include<string>usingnamespace std;int vis[1110];intmain(){
string s1, s2;
cin>>s1>>s2;transform(s1.begin(),s1.end(),s1.begin(),::toupper);transform(s2.begin(),s2.end(),s2.begin(),::toupper);for(int i =0; i < s1.size(); i++){if(s2.find(s1[i])==string::npos &&!vis[s1[i]]){ cout<<s1[i]; vis[s1[i]]=1;}}return0;}
1030
#include<iostream>#include<algorithm>#include<vector>usingnamespace std;typedeflonglong LL;intmain(){
LL n, p; cin>>n>>p;
vector<int>a(n);for(int i =0;i < n; i++)cin>>a[i];sort(a.begin(),a.end());
LL ans =0;for(int i =0; i < n; i++){for(int j = i+ans; j < n; j++){//+ans剪枝if(a[j]<=a[i]*p)
ans =max(ans,(LL)j-i+1);elsebreak;}}
cout<<ans;return0;}
1031
#include<iostream>#include<algorithm>#include<string>usingnamespace std;int z[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char m[]={'1','0','X','9','8','7','6','5','4','3','2'};intmain(){int n; cin>>n;int ok =1;while(n--){
string id; cin>>id;int sum =0;for(int i =0; i < id.size()-1; i++)
sum +=(id[i]-'0')*z[i];if(m[sum%11]!= id[id.size()-1]){
cout<<id<<"\n";
ok =0;}}if(ok)cout<<"All passed\n";return0;}
1032
#include<iostream>#include<algorithm>#include<vector>#include<map>usingnamespace std;boolcmp(pair<int,int>a,pair<int,int>b){return a.second>b.second;}intmain(){int n; cin>>n;
map<int,int>mm;for(int i =1; i <= n; i++){int a, b; cin>>a>>b;
mm[a]+= b;}
vector<pair<int,int>>v;//sort(mm.begin(),mm.end(),cmp);for(map<int,int>::iterator it = mm.begin(); it != mm.end(); it++){
v.push_back(make_pair(it->first,it->second));//cout<<it->first<<" "<<it->second<<"\n";}sort(v.begin(),v.end(),cmp);/*
for(int i = 0; i < v.size(); i++){
cout<<v[i].first<<" "<<v[i].second<<"\n";
}
*/
cout<<v[0].first<<" "<<v[0].second<<"\n";return0;}
1033
#include<iostream>#include<algorithm>#include<string>usingnamespace std;intmain(){
string s1, s2;getline(cin,s1);getline(cin,s2);if(s1.size()==0){cout<<s2;return0;}int ok =1;if(s1.find('+')!=string::npos)ok =0;//transform(s1.begin(),s1.end(),s1.begin(),::toupper);害怕字符大写影响//int kk = 1; 害怕空行影响for(int i =0; i < s2.size(); i++){if(s1.find(toupper(s2[i]))!=string::npos)continue;if(isupper(s2[i])&&ok==0)continue;
cout<<s2[i];// kk = 0;}//if(kk)cout<<'\n';return0;}
1034
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;
LL gcd(LL a, LL b){return b==0?a:gcd(b,a%b);}voidprin(LL n, LL m){if(n*m==0){printf("%s",m==0?"Inf":"0");return;}//int ok = (n*m<0);int ok=0;if((n<0&&m>0)||(n>0&&m<0))ok =1;if(ok)cout<<"(-";
n =abs(n), m =abs(m);
LL x = n/m, r = n%m;if(x!=0)cout<<x;if(r==0){if(ok)cout<<")";return;}if(x!=0)cout<<" ";
n = r;
LL t =gcd(n,m);
n /= t; m /= t;
cout<<n<<"/"<<m;if(ok)cout<<")";/*
if(x>0)cout<<x;
if(x>0&&r!=0)cout<<" ";
if(r!=0){
LL t = gcd(r,m);
cout<<r/t<<"/"<<m/t;
}
if(ok)cout<<")";
*/}intmain(){
LL a, b, c, d;scanf("%lld/%lld %lld/%lld",&a,&b,&c,&d);prin(a,b); cout<<" + ";prin(c,d); cout<<" = ";prin(a*d+b*c,b*d); cout<<"\n";prin(a,b); cout<<" - ";prin(c,d); cout<<" = ";prin(a*d-b*c,b*d); cout<<"\n";prin(a,b); cout<<" * ";prin(c,d); cout<<" = ";prin(a*c,b*d); cout<<"\n";prin(a,b); cout<<" / ";prin(c,d); cout<<" = ";prin(a*d,b*c); cout<<"\n";return0;}
1035
//1.两个排序不会,磨了一个小时//2.学习一下神奇的插入排序写法。//3.几路归并没说,所以枚举。#include<iostream>#include<algorithm>#include<cstring>usingnamespace std;constint maxn =110;int n, a[maxn], b[maxn],c[maxn], ok;voidMerge(int a[]){//传说中的归并排序写法,学习了。。。//从底部往上,每次局部快排。。。for(int i =1; i <= n; i*=2){for(int j =0; j < n; j+=i){if(j+i<=n)sort(a+1+j,a+1+j+i);elsesort(a+1+j,a+n+1);}//outputint ok =1;for(int j =1; j <= n; j++)if(a[j]!=b[j]){ok=0;break;}if(ok){
cout<<"Merge Sort\n";
i *=2;//手动下一轮排序qwq(亏我之前还全局开关等下一轮)for(int j =0; j < n; j+=i){if(j+i<=n)sort(a+j+1,a+j+i+1);elsesort(a+j+1,a+n+1);}for(int j =1; j < n; j++)cout<<a[j]<<" ";cout<<a[n];cout<<"\n";}}/*
if(l==r)return ;
int mid = (l+r)/2;
Merge(l,mid);
//for(int i = 1; i <= n; i++)cout<<a[i]<<" ";cout<<"\n";
if(ok){cout<<"Merge Sort\n";for(int i = 1; i <= n; i++)cout<<a[i]<<' '; cout<<"\n";ok=0;}
ok = 1;
for(int i = 1; i <= n; i++)
if(a[i]!=b[i]){ok=0;break;}
Merge(mid+1,r);
//for(int i = 1; i <= n; i++)cout<<a[i]<<" ";cout<<"\n";
if(ok){cout<<"Merge Sort\n";for(int i = 1; i <= n; i++)cout<<a[i]<<' '; cout<<"\n";ok=0;}
ok = 1;
for(int i = 1; i <= n; i++)
if(a[i]!=b[i]){ok=0;break;}
int i = l, j = mid+1, k=1;
int t[110];
while(i<j && i<=mid && j<=r){
if(a[i]<a[j])t[k] = a[i++];
else t[k] = a[j++];
k++;
}
while(i<=mid)t[k++]=a[i++];
while(j<=r)t[k++]=a[j++];
k = 1;
//for(int i = 1; i <= n; i++)cout<<a[i]<<" ";cout<<"\n";
for(int ii=l; ii <= r; ii++)
a[ii]=t[k++];
if(ok){cout<<"Merge Sort\n";for(int i = 1; i <= n; i++)cout<<a[i]<<' '; cout<<"\n";ok=0;}
ok = 1;
for(int i = 1; i <= n; i++)
if(a[i]!=b[i]){ok=0;break;}
//for(int i = 1; i <= n; i++)cout<<a[i]<<" ";cout<<"\n";
*/}voidswap(int&x,int&y){int t = x; x = y, y = t;}boolInsert(){for(int i =2; i <= n; i++){//害怕!!!插入排序!!!∑(゚Д゚ノ)ノsort(a+1,a+i+1);/*
int tt = a[i], j = i-1;
for(; j>= 1; j--)
if(a[j]>a[j+1])swap(a[j+1],a[j]);
*///outputint ok =1;for(int j =1; j <= n; j++)if(a[j]!=b[j]){ok=0;break;}if(ok){
cout<<"Insertion Sort\n";sort(a+1,a+i+2);//......for(int j =1; j < n; j++)cout<<a[j]<<" "; cout<<a[n]<<"\n";returntrue;}}returnfalse;}intmain(){
cin>>n;for(int i =1; i <= n; i++){cin>>a[i];c[i]=a[i];}for(int i =1; i <= n; i++)cin>>b[i];if(!Insert()){//测试点3,可能有两种都有的情况//a数组被Insert改掉了,,归并当然算不出来啊卧槽。。。Merge(c);}//for(int i = 1; i <= n; i++)cout<<a[i]<<' ';return0;}
1036
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int n;char ch; cin>>n>>ch;int h = n/2+n%2;for(int i =0; i < n; i++)cout<<ch; cout<<"\n";for(int i =0; i < h-2; i++){
cout<<ch;for(int j =0; j < n-2; j++)cout<<" ";
cout<<ch<<"\n";}for(int i =0; i < n; i++)cout<<ch;return0;}
1037
//直接转换为最小单位后转换回来#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int a, b ,c, m, n, t, x, y, z;scanf("%d.%d.%d %d.%d.%d",&a,&b,&c,&m,&n,&t);int cc =(a*17*29+b*29+c)-(m*17*29+n*29+t);if(cc >0)cout<<"-";if(cc <0)cc =-cc;printf("%d.%d.%d",(cc/29)/17,(cc/29)%17,cc%29);return0;}
1038
#include<iostream>usingnamespace std;constint maxn =1e5+10;int vis[maxn];intmain(){int n; cin>>n;for(int i =1; i <= n; i++){int x; cin>>x; vis[x]++;}int k; cin>>k;for(int i =1; i < k; i++){int x; cin>>x; cout<<vis[x]<<' ';}int x; cin>>x; cout<<vis[x];return0;}
1039
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;int aa[300], bb[300];intmain(){
string a, b; cin>>a>>b;for(int i =0; i < a.size(); i++)aa[a[i]]++;for(int i =0; i < b.size(); i++)bb[b[i]]++;int ok =1, cnt =0;for(int i =0; i <250; i++){if(aa[i]==0&& bb[i]==0)continue;if(aa[i]<bb[i]){
ok =0;
cnt += bb[i]-aa[i];}}if(ok==1)cout<<"Yes "<<(int)a.size()-(int)b.size()<<"\n";else cout<<"No "<<cnt;return0;}
1040
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;constint mod =1000000007;int p[maxn], a[maxn], t[maxn], at[maxn];intmain(){
string s; cin>>s;int ans =0;for(int i = s.size()-1; i >=0; i--){
p[i]= p[i+1]; a[i]= a[i+1]; t[i]= t[i+1];
at[i]= at[i+1];if(s[i]=='T')t[i]++;if(s[i]=='A')at[i]=(at[i]+t[i])%mod;if(s[i]=='P'){
p[i]++;
ans =(ans+at[i])%mod;}}
cout<<ans%mod<<"\n";return0;}
1041
#include<bits/stdc++.h>usingnamespace std;constint maxn =1100;
string ha[maxn];int ha2[maxn];intmain(){int n; cin>>n;for(int i =1; i <= n; i++){
string a;int b, c;
cin>>a>>b>>c;
ha[b]= a;
ha2[b]= c;}int q; cin>>q;for(int i =1; i <= q; i++){int x; cin>>x;
cout<<ha[x]<<" "<<ha2[x]<<"\n";}return0;}
1042
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;constint mod =1000000007;int z[500];intmain(){
string s;getline(cin,s);char mx=s[0];for(int i =0; i < s.size(); i++){if(!isalpha(s[i]))continue;
s[i]=tolower(s[i]);
z[s[i]]++;if(z[s[i]]>z[mx])mx=s[i];elseif(z[s[i]]==z[mx]&& s[i]<mx)mx=s[i];}
cout<<mx<<" "<<z[mx];return0;}
1043
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;constint mod =1000000007;int z[500];intmain(){
string s;getline(cin,s);for(int i =0; i < s.size(); i++)z[s[i]]++;while(z['P']||z['A']||z['T']||z['e']||z['s']||z['t']){if(z['P']){putchar('P'); z['P']--;}if(z['A']){putchar('A'); z['A']--;}if(z['T']){putchar('T'); z['T']--;}if(z['e']){putchar('e'); z['e']--;}if(z['s']){putchar('s'); z['s']--;}if(z['t']){putchar('t'); z['t']--;}}return0;}
1044
#include<iostream>#include<string>#include<cstring>usingnamespace std;const string a[]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};const string b[]={"tret","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
string Tohuo(string s){int t =0;for(int i =0; i < s.size();i++)
t = t*10+s[i]-'0';int x = t/13, y = t%13;if(t==0)return a[0];if(x==0)return a[y];if(x!=0&& y==0)return b[x];return b[x]+" "+a[y];}inttodi(string s){
string x = s.substr(0,3), y;if(s.size()>3){
y = s.substr(4,3);int t1 =0, t2 =0;for(int i =0; i <13; i++)if(b[i]==x){t1 = i;break;}for(int i =0; i <13; i++)if(a[i]==y){t2 = i;break;}return t1*13+t2;}else{int ans =0, ok =1;for(int i =0; i <13; i++)if(a[i]==x){ans = i; ok =0;break;}if(!ok)return ans;for(int i =0; i <13; i++)if(b[i]==x){ans = i;break;}return ans*13;}}intmain(){int n; cin>>n; cin.get();for(int i =1; i <= n; i++){
string s;getline(cin,s);if(isdigit(s[0]))cout<<Tohuo(s)<<'\n';else cout<<todi(s)<<'\n';}return0;}
1045
//测试点2,没有主元素,要输出的格式为: 0\n\n !!!!!!!!#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;constint inf =1e9+10;int a[maxn], mi[maxn], mx[maxn];intmain(){int n; cin>>n;for(int i =1; i <= n; i++){
cin>>a[i];
mx[i]=max(a[i],mx[i-1]);
mi[i]= inf;}
mi[n+1]= inf;for(int i = n; i >=1; i--){
mi[i]=min(mi[i+1], a[i]);}int ans =0;
vector<int>vc;for(int i =1; i <= n; i++){//cout<<i<<" "<<a[i]<<" "<<mx[i-1]<<" "<<mi[i+1]<<"\n";if(a[i]>mx[i-1]&& a[i]<mi[i+1]){
ans++;
vc.push_back(a[i]);}}
cout<<ans<<"\n";if(ans==0)cout<<"\n";for(int i =0; i < vc.size(); i++){if(i!=0)cout<<" ";
cout<<vc[i];}return0;}
1046
#include<bits/stdc++.h>usingnamespace std;intmain(){int n; cin>>n;int A =0, B =0;for(int i =1; i <= n; i++){int a, b, c, d;
cin>>a>>b>>c>>d;int cc =0;if(b==a+c)cc++;if(d==a+c)cc--;if(cc>0)B++;if(cc<0)A++;}
cout<<A<<" "<<B;return0;}
1047
#include<iostream>#include<string>usingnamespace std;int a[1010];intid(string x){int ans =0;for(int i =0; i < x.size(); i++){if(x[i]=='-')break;
ans = ans*10+x[i]-'0';}return ans;}intmain(){int n; cin>>n;
string s;int sc;for(int i =1; i <= n; i++){
cin>>s>>sc;
a[id(s)]+=sc;}int an1=0, an2=0;for(int i =1; i <=1010; i++){if(a[i]>an2){
an1 = i; an2 = a[i];}}
cout<<an1<<' '<<an2<<'\n';return0;}
1048
#include<bits/stdc++.h>usingnamespace std;intmain(){
string a, b; cin>>a>>b;int d = a.size()-b.size();if(d>0)b.insert(0,string(d,'0'));if(d<0)a.insert(0,string(-d,'0'));
string s ="0123456789JQK", c;for(int i = a.size()-1, w=1; i >=0; i--, w++){if(w%2==1){
c += s[(a[i]-'0'+b[i]-'0')%13];}else{int t = b[i]-a[i];if(t <0)t +=10;
c += s[t];}}reverse(c.begin(),c.end());
cout<<c;return0;}
1049
#include<bits/stdc++.h>usingnamespace std;intmain(){int n; cin>>n;longlong ans =0;//精度bugfor(int i =1; i <= n; i++){double x; cin>>x;
ans +=(longlong)(x*1000)*i*(n-i+1);//起点*终点,i*(n-i+1)}printf("%.2lf",ans/1000.0);return0;}
1050
//Tests7:9973, 数组开小了,n属于[0,100]即可#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;int a[maxn], mp[10010][110];intmain(){
ios::sync_with_stdio(false);int N;scanf("%d",&N);for(int i =1; i <= N; i++)scanf("%d",&a[i]);sort(a+1,a+N+1);int n =sqrt(N);while(n>1&& N%n!=0)n--;int m = N/n;int x =1, y =1;
mp[x][y]= a[N--];while(N >=1){while(y+1<=n &&!mp[x][y+1])mp[x][y+1]= a[N--], y++;while(x+1<=m &&!mp[x+1][y])mp[x+1][y]= a[N--], x++;while(y-1>=1&&!mp[x][y-1])mp[x][y-1]= a[N--], y--;while(x-1>=1&&!mp[x-1][y])mp[x-1][y]= a[N--], x--;}for(int i =1; i <= m; i++){for(int j =1; j <= n; j++){if(j!=1)putchar(' ');printf("%d",mp[i][j]);}putchar('\n');}return0;}
//Tests7:9973, 数组开小了,n属于[0,100]即可#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;intmain(){
string s, y, k;getline(cin,s);getline(cin,y);getline(cin,k);
vector<string>ss, yy, kk;int t =0;for(int i =0; i < s.size(); i++){if(s[i]=='[')t = i;elseif(s[i]==']')ss.push_back(s.substr(t+1,i-t-1));}
t =0;for(int i =0; i < y.size(); i++){if(y[i]=='[')t = i;elseif(y[i]==']')yy.push_back(y.substr(t+1,i-t-1));}
t =0;for(int i =0; i < k.size(); i++){if(k[i]=='[')t = i;elseif(k[i]==']')kk.push_back(k.substr(t+1,i-t-1));}//cout<<ss.size()<<" "<<yy.size()<<" "<<kk.size();//for(string x:yy)cout<<x<<"\n";//return 0;int n; cin>>n;for(int i =1; i <= n; i++){int a, b, c, d, e; cin>>a>>b>>c>>d>>e;if(a>ss.size()|| e>ss.size()|| b>yy.size()||d>yy.size()||c>kk.size()||a<1||b<1||c<1||d<1||e<1)cout<<"Are you kidding me? @\\/@"<<endl;else cout<<ss[a-1]<<"("<<yy[b-1]<<kk[c-1]<<yy[d-1]<<")"<<ss[e-1]<<"\n";}return0;}
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;constint maxn =1e5+10;boolcheck(string s){int ok =0, pos;for(int i =0; i < s.size(); i++){if(!isdigit(s[i])&&s[i]!='.'&&s[i]!='-')return0;if(s[i]=='-'&& i!=0)return0;if(s[i]=='.'){
ok++; pos = i;if(ok>1)return0;}}if(ok==1&& pos<s.size()-3)return0;if(stod(s)>1000.0||stod(s)<-1000.0)return0;return1;}intmain(){int n; cin>>n;int cnt =0;double sum =0;for(int i =1; i <= n; i++){
string s; cin>>s;if(!check(s))cout<<"ERROR: "<<s<<" is not a legal number\n";else{
cnt++;
sum +=stod(s);}}if(cnt==0)printf("The average of 0 numbers is Undefined");elseif(cnt==1)printf("The average of %d number is %.2lf",cnt,sum);elseprintf("The average of %d numbers is %.2lf", cnt, sum/cnt);return0;}
1055
//排队:偶数序列的倒序加上奇数序列42135#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;struct node{string name;int hei;}a[maxn];boolcmp(node a, node b){return a.hei!=b.hei?a.hei>b.hei:a.name<b.name;}voidpaidui(int cur,int len){
queue<string>q;
stack<string>s;for(int i = cur; i < cur+len; i++){if((i-cur)%2==1)s.push(a[i].name);else q.push(a[i].name);}while(s.size()){
cout<<s.top()<<" "; s.pop();}while(q.size()){
cout<<q.front(); q.pop();if(q.size()!=0)cout<<" ";}
cout<<"\n";}intmain(){int n, k; cin>>n>>k;for(int i =1; i <= n; i++)
cin>>a[i].name>>a[i].hei;sort(a+1,a+n+1,cmp);paidui(1,n%k+n/k);for(int i =1; i < k; i++)paidui(n%k+n/k*i+1,n/k);return0;}
1056
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;intmain(){int n, sum =0;
cin>>n;for(int i =1; i <= n; i++){int t; cin>>t;
sum +=(t*10+t)*(n-1);}
cout<<sum<<"\n";return0;}
1057
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;intmain(){
string s;getline(cin,s);int sum =0;for(int i =0; i < s.size(); i++){if(!isalpha(s[i]))continue;
s[i]=tolower(s[i]);
sum += s[i]-'a'+1;}int z =0, y =0;while(sum){if(sum&1==1)y++;else z++;
sum >>=1;}
cout<<z<<" "<<y<<"\n";return0;}
1058
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;int sc[110]; string as[110];int cnt[110];intmain(){int n, m; cin>>n>>m;for(int i =1; i <= m; i++){int x,y; cin>>sc[i]>>x>>y;for(int j =1; j <= y; j++){char ch; cin>>ch;
as[i]= as[i]+ch;}}getchar();int mx =0;for(int i =1; i <= n; i++){int fen =0;for(int j =1; j <= m; j++){getchar();int kk; cin>>kk;
string tmp="";for(int k =1; k <= kk; k++){char ch; cin>>ch;
tmp += ch;}if(tmp==as[j])fen+=sc[j];else{
cnt[j]++;if(cnt[j]>mx)mx = cnt[j];}getchar();getchar();}
cout<<fen<<"\n";}if(mx==0){
cout<<"Too simple\n";return0;}
cout<<mx;for(int i =1; i <= m; i++){if(cnt[i]==mx){
cout<<" "<<i;}}return0;}
1059
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;int rk[maxn], vis[maxn];boolisprime(int n){for(int i =2; i*i <= n; i++)if(n%i==0)return0;return1;}intmain(){int n; cin>>n;for(int i =1; i <= n; i++){int x; cin>>x; rk[x]= i;}int T; cin>>T;while(T--){int x; cin>>x;if(!rk[x]){printf("%04d: Are you kidding?\n",x);continue;}if(vis[x]){printf("%04d: Checked\n",x);continue;}
vis[x]=1;if(rk[x]==1)printf("%04d: Mystery Award\n", x);elseif(isprime(rk[x]))printf("%04d: Minion\n", x);elseprintf("%04d: Chocolate\n", x);}return0;}
1060
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;int a[maxn];boolcmp(int x,int y){return x>y;}intmain(){int n; cin>>n;for(int i =1; i <= n; i++)cin>>a[i];sort(a+1,a+n+1,cmp);int i;for(i =1; i <= n; i++)if(i>=a[i])break;
cout<<i-1;return0;}
1061
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;int sc[110], as[110];intmain(){int n, m; cin>>n>>m;for(int i =1; i <= m; i++)cin>>sc[i];for(int i =1; i <= m; i++)cin>>as[i];for(int i =1; i <= n; i++){int cnt =0;for(int j =1; j <= m; j++){int x; cin>>x;if(x==as[j])cnt += sc[j];}
cout<<cnt<<"\n";}return0;}
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;intgcd(int a,int b){return!b?a:gcd(b,a%b);}intmain(){int n; cin>>n;double mx =0;for(int i =1; i <= n; i++){double a, b; cin>>a>>b;
mx =max(mx,sqrt(a*a+b*b));}printf("%.2lf",mx);return0;}
1064
#include<iostream>#include<set>usingnamespace std;intmain(){int n; cin>>n;
set<int>ans;for(int i =1; i <= n; i++){int x; cin>>x;int t =0;while(x>0){
t += x%10;
x /=10;}
ans.insert(t);}
cout<<ans.size()<<'\n';
set<int>::iterator it = ans.begin(), it2 = ans.begin();advance(it2,ans.size()-1);for(; it != it2; it++){
cout<<*it<<" ";}
cout<<*it;return0;}
1065
#include<iostream>#include<algorithm>#include<map>#include<set>#include<vector>usingnamespace std;intmain(){int n; cin>>n;
map<int,int>cp;for(int i =1; i <= n; i++){int x, y; cin>>x>>y;
cp[x]= y, cp[y]= x;}int m; cin>>m;
vector<int>ans;
set<int>t;for(int i =1; i <= m; i++){int x; cin>>x; t.insert(x);}for(set<int>::iterator it = t.begin(); it != t.end(); it++){if(!cp.count(*it)){ans.push_back(*it);continue;}if(!t.count(cp[*it]))ans.push_back(*it);}if(ans.size()==0){cout<<0;return0;}//mmp
cout<<ans.size()<<"\n";sort(ans.begin(),ans.end());for(int i =0; i < ans.size()-1; i++)printf("%05d ",ans[i]);//mmpprintf("%05d",ans[ans.size()-1]);//mmpreturn0;}
1066
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e5+10;intgcd(int a,int b){return!b?a:gcd(b,a%b);}intmain(){
ios::sync_with_stdio(false);int m, n, a, b, hui;
cin>>m>>n>>a>>b>>hui;for(int i =1; i <= m; i++){for(int j =1; j <= n; j++){int x; cin>>x;if(x>=a && x<=b)x = hui;if(j!=1)putchar(' ');printf("%03d",x);}putchar('\n');}return0;}
#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;constint maxn =1010;int m, n, tol, a[maxn][maxn];intcheck(int x,int y){for(int dx=-1; dx <=1; dx++){for(int dy=-1; dy<=1; dy++){if(dx==dy&&dx==0)continue;int nx = x+dx, ny = y+dy;if(nx>=1&&nx<=n&&ny>=1&&ny<=m &&abs(a[nx][ny]-a[x][y])<=tol)return0;}}return1;}intmain(){
cin>>m>>n>>tol;
map<int,int>ma;for(int i =1; i <= n; i++)for(int j =1; j <= m; j++){ cin>>a[i][j]; ma[a[i][j]]++;}int cnt =0, x, y;for(int i =1; i <= n; i++){for(int j =1; j <= m; j++){if(ma[a[i][j]]==1&&check(i,j)){
cnt++; x = i; y = j;}}}if(cnt==1)printf("(%d, %d): %d",y,x,a[x][y]);elseif(cnt==0)printf("Not Exist");elseprintf("Not Unique");return0;}
1069
#include<iostream>#include<set>#include<string>#include<vector>usingnamespace std;
string name[1010];intmain(){int m, n, s;
cin>>m>>n>>s;for(int i =1; i <= m; i++)cin>>name[i];
set<string>se; vector<string>ans;for(int i = s; i <= m; i+=n){while(se.count(name[i]))i++;
se.insert(name[i]);
ans.push_back(name[i]);}if(se.size()!=0){for(int i =0; i < ans.size(); i++)
cout<<ans[i]<<"\n";}else cout<<"Keep going...";return0;}
1070
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;int a[10010];intmain(){int n; cin>>n;for(int i =1; i <= n; i++)cin>>a[i];sort(a+1,a+n+1);int ans = a[1];for(int i =2; i <= n; i++)
ans =(ans+a[i])/2;
cout<<ans<<"\n";return0;}
1071
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;int a[10010];intmain(){int T, K; cin>>T>>K;for(int i =1; i <= K; i++){int n1, b, t, n2;
cin>>n1>>b>>t>>n2;int flag;if(n1>n2)flag =0;else flag =1;if(T==0){printf("Game Over.\n");return0;}elseif(t>T){printf("Not enough tokens. Total = %d.\n",T);}elseif(flag == b){
T += t;printf("Win %d! Total = %d.\n",t,T);}else{
T -= t;printf("Lose %d. Total = %d.\n", t, T);}}return0;}
1072
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;int vis[10010];intmain(){int n, m; cin>>n>>m;for(int i =1; i <= m; i++){int x; cin>>x; vis[x]++;}int c1 =0, c2 =0;for(int i =1; i <= n; i++){
string name;int k;
cin>>name>>k;
vector<int>vc;for(int j =1; j <= k; j++){int x; cin>>x;if(vis[x])vc.push_back(x);}if((int)vc.size()!=0){
c1++;
cout<<name<<":";for(int j =0; j < vc.size(); j++){printf(" %04d", vc[j]);}
cout<<"\n";}
c2 += vc.size();}
cout<<c1<<" "<<c2<<"\n";return0;}
1073
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;int sc[110]; string ans[110];int wa[110][110];intmain(){int n, m; cin>>n>>m;for(int i =1; i <= m; i++){int k1, k2; cin>>sc[i]>>k1>>k2;for(int j =1; j <= k2; j++){char ch; cin>>ch;
ans[i]+= ch;}}for(int i =1; i <= n; i++){double fen =0;for(int j =1; j <= m; j++){int ok =1;getchar();for(int k =0; k < ans[j].size(); k++)
wa[j][ans[j][k]-'a']++;int kk;scanf("(%d",&kk);for(int k =1; k <= kk; k++){char ch;scanf(" %c)",&ch);if(ans[j].find(string(1,ch))!=string::npos){
wa[j][ch-'a']--;//他没选但是答案里有也算错continue;}else{
wa[j][ch-'a']++;//他选了个错的
ok =0;}}if(kk==(int)ans[j].size()&& ok==1){
fen += sc[j];}elseif(ok==1&&(int)kk!=ans[j].size()){
fen += sc[j]*1.0/2;}}printf("%.1lf\n",fen);}int mx =0;for(int i =1; i <= m; i++)for(int j =0; j <5; j++)
mx =max(mx, wa[i][j]);if(mx ==0)printf("Too simple\n");else{for(int i =1; i <= m; i++){for(int j =0; j <5; j++){if(mx==wa[i][j]){printf("%d %d-%c\n",mx,i,'a'+j);}}}}return0;}
1074
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;typedeflonglong LL;intmain(){
string a, b, c, d;
cin>>a>>b>>c;
d = a;
b =string(a.size()-b.size(),'0')+b;
c =string(a.size()-c.size(),'0')+c;int t =0;//进位for(int i = a.size()-1; i >=0; i--){int p = a[i]-'0';if(p==0)p =10;
d[i]=(b[i]-'0'+c[i]-'0'+t)%p+'0';
t =(b[i]-'0'+c[i]-'0'+t)/p;}if(t!=0)d='1'+d;int st =0;while(d[st]=='0')st++;if(st<d.size())cout<<d.substr(st,d.size()-st+1);else cout<<0;return0;}
1075
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int begin, n, k;
cin>>begin>>n>>k;for(int i =1; i <= n; i++){int x; cin>>x; li[x].address = x;
cin>>li[x].data>>li[x].next;}int cnt =0;
vector<int>v[5];for(int i = begin; i !=-1; i=li[i].next){if(li[i].data<0)v[1].push_back(i);elseif(li[i].data>=0&&li[i].data<=k)v[2].push_back(i);else v[3].push_back(i);}int ok =0;for(int i =1; i <=3; i++){for(int j =0; j < v[i].size(); j++){if(ok==0){printf("%05d %d ",v[i][j],li[v[i][j]].data);
ok =1;}else{printf("%05d\n%05d %d ",v[i][j],v[i][j],li[v[i][j]].data);}}}puts("-1");return0;}
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];
string rev(string s){reverse(s.begin(),s.end());return s;}
string add(string a, string b){
string ans = a;int t =0;//进位for(int i = a.size()-1; i >=0; i--){
ans[i]=(a[i]-'0'+b[i]-'0'+t)%10+'0';
t =(a[i]-'0'+b[i]-'0'+t)/10;}if(t>0)ans ="1"+ans;return ans;}intmain(){
string s; cin>>s;if(s==rev(s)){cout<<s<<" is a palindromic number.";return0;}for(int i =1; i <=10; i++){
string t =add(s,rev(s));
cout<<s<<" + "<<rev(s)<<" = "<<t<<"\n";if(t==rev(t)){
cout<<t<<" is a palindromic number.\n";return0;}
s = t;}
cout<<"Not found in 10 iterations.\n";return0;}
1080
//W2.修改了四舍五入的方式#include<iostream>#include<algorithm>#include<string>#include<map>#include<vector>#include<cmath>usingnamespace std;struct st{
string id;int gp, gm, gn, g;int ok;st(int x =-1){gp=gm=gn=ok=x;g=0;}booloperator<(const st& b){if(this->g==b.g)returnthis->id<b.id;returnthis->g>b.g;}};boolcmp(pair<string,st> a,pair<string,st> b){return a.second < b.second;}intmain(){int p, m, n;
cin>>p>>m>>n;
map<string,st>ans;for(int i =1; i <= p; i++){
string a;int b; cin>>a>>b;
st c; c.id = a; c.gp=b;if(!ans.count(a))ans[a]= c;//ans.insert(make_pair(a,c));}for(int i =1; i <= m; i++){
string a;int b; cin>>a>>b;
st c; c.id = a; c.gm=b;if(!ans.count(a))ans.insert(make_pair(a,c));else ans[a].gm = b;}for(int i =1; i <= n; i++){
string a;int b; cin>>a>>b;
st c; c.id = a; c.gn=b;if(!ans.count(a))ans.insert(make_pair(a,c));else ans[a].gn = b;}for(map<string,st>::iterator it = ans.begin(); it != ans.end(); it++){if((*it).second.gn>(*it).second.gm)(*it).second.g =(*it).second.gn;else(*it).second.g =int(0.4*(*it).second.gm+0.6*(*it).second.gn+0.5);}
vector<pair<string,st>>aa(ans.begin(),ans.end());sort(aa.begin(),aa.end(),cmp);for(vector<pair<string,st>>::iterator it = aa.begin(); it != aa.end(); it++){if((*it).second.gp>=200&&(*it).second.g>=60)printf("%s %d %d %d %d\n",(*it).second.id.c_str(),(*it).second.gp,(*it).second.gm,(*it).second.gn,(*it).second.g);}return0;}
1081
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int n; cin>>n; cin.get();for(int i =1; i <= n; i++){
string s;getline(cin,s);if(s.size()<6)cout<<"Your password is tai duan le.\n";else{int ok =0, zimu =0, shuzi =0;for(int j =0; j < s.size(); j++){if(isdigit(s[j]))shuzi++;elseif(isalpha(s[j]))zimu++;elseif(s[j]!='.')ok++;}if(ok)cout<<"Your password is tai luan le.\n";elseif(!zimu)cout<<"Your password needs zi mu.\n";elseif(!shuzi)cout<<"Your password needs shu zi.\n";else cout<<"Your password is wan mei.\n";}}return0;}
1082
//感觉是个贪心#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int n; cin>>n;int mx =-1, mi =1e9+10, tmx, tmi;for(int i =1; i <= n; i++){int id, x, y; cin>>id>>x>>y;int dis = x*x+y*y;if(dis>mx){mx=dis;tmx=id;}if(dis<mi){mi=dis;tmi=id;}}printf("%04d %04d",tmi,tmx);return0;}
1083
#include<iostream>#include<algorithm>#include<map>usingnamespace std;intmain(){int n; cin>>n;
map<int,int>m;for(int i =1; i <= n; i++){int x; cin>>x;int t =max(i-x,x-i); m[t]++;}//没有重复不用输出for(map<int,int>::reverse_iterator it = m.rbegin(); it != m.rend(); it++){if(((*it).second)!=1)cout<<((*it).first)<<" "<<((*it).second)<<'\n';}return0;}
1084
//后面那个是对前面那个数的介绍,即统计相连且相同字符出现的次数#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){
string s;int n; cin>>s>>n;for(int i =2; i <= n; i++){
string t;for(int j =0, k; j < s.size(); j = k){for(k = j; k<s.size()&&s[k]==s[j]; k++);
t += s[j]+to_string(k-j);}
s = t;}
cout<<s;return0;}
1085
#include<iostream>#include<algorithm>#include<string>#include<map>#include<vector>usingnamespace std;struct school{
string name;//double score;int s1,s2,s3,score;int number;school(){s1=s2=s3=score=0,number=0;}};voidxiaoxie(string &x){for(int i =0; i < x.size(); i++)
x[i]=tolower(x[i]);}boolcmp(pair<string,school> a, pair<string,school> b){if(a.second.score != b.second.score)return a.second.score>b.second.score;if(a.second.number != b.second.number)return a.second.number<b.second.number;return a.second.name<b.second.name;}intmain(){int n; cin>>n;
map<string,school>mm;for(int i =1; i <= n; i++){
string id,sch;int num;
cin>>id>>num>>sch;xiaoxie(sch);//处理输入数据if(!mm.count(sch))mm[sch].name = sch;
mm[sch].number++;if(id[0]=='A')mm[sch].s1 += num;if(id[0]=='B')mm[sch].s2 += num;if(id[0]=='T')mm[sch].s3 += num;}//mmp:题目说的是把总分除以1.5而不是每次除,最后一个点数据大了精度过不去for(map<string,school>::iterator it = mm.begin(); it != mm.end(); it++){
it->second.score = it->second.s1+it->second.s2/1.5+it->second.s3*1.5;}//用vector排序map<key,value>中value的值,(map默认key排序
vector<pair<string,school>>vec(mm.begin(),mm.end());sort(vec.begin(),vec.end(),cmp);int rank =1;
cout<<vec.size()<<'\n';for(int i =0; i < vec.size(); i++){if(i!=0&&(int)vec[i].second.score!=(int)vec[i-1].second.score)rank=i+1;
cout<<rank<<' '<<vec[i].second.name<<' '<<(int)vec[i].second.score<<' '<<vec[i].second.number<<'\n';}return0;}
1086
//后面那个是对前面那个数的介绍,即统计相连且相同字符出现的次数#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int a, b;
cin>>a>>b;
string s =to_string(a*b);reverse(s.begin(),s.end());
cout<<stoi(s);return0;}
1087
//后面那个是对前面那个数的介绍,即统计相连且相同字符出现的次数#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];intmain(){int n; cin>>n;
set<int>se;for(int i =1; i <= n; i++){
se.insert(i/2+i/3+i/5);}
cout<<se.size();return0;}
1088
//后面那个是对前面那个数的介绍,即统计相连且相同字符出现的次数#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;struct node{int address, data, next;}li[maxn];int m, x, y;voidprint(double t){if(t==m)printf(" Ping");if(t>m)printf(" Cong");if(t<m)printf(" Gai");}intmain(){
cin>>m>>x>>y;for(int i =99; i >=10; i--){int j = i%10*10+i/10;double k =abs(i-j)*1.0/x;if(j==k*y){
cout<<i;print(i);print(j);print(k);return0;}}
cout<<"No Solution\n";return0;}
1089
//枚举所有的情况并判断#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;int v[maxn];//每个人说的话intmain(){int n; cin>>n;for(int i =1; i <= n; i++)cin>>v[i];for(int i =1; i <= n; i++){//枚举(i,j)表示狼人for(int j = i+1; j <= n; j++){
vector<int>a(n+1,1);//记录狼人
a[i]=-1, a[j]=-1;
vector<int>lie;//枚举冲突的就是说谎for(int k =1; k <= n; k++)if(v[k]*a[abs(v[k])]<0)lie.push_back(k);//恰好有两个人说谎,一个狼人一个好人if(lie.size()==2&& a[lie[0]]+a[lie[1]]==0){
cout<<i<<" "<<j;return0;}}}
cout<<"No Solution";return0;}
1090
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;intmain(){
ios::sync_with_stdio(false);int n, m; cin>>n>>m;
map<int, vector<int>>ma;for(int i =1; i <= n; i++){int x, y; cin>>x>>y;
ma[x].push_back(y);
ma[y].push_back(x);}for(int i =1; i <= m; i++){int k; cin>>k;
set<int>se;for(int j =1; j <= k; j++){int x; cin>>x; se.insert(x);}int ok =1;for(int x : se)for(int y : ma[x])if(se.count(y))ok =0;if(ok)cout<<"Yes\n";else cout<<"No\n";}return0;}
1091
//关了流同步,不能cin和scanf一起,否则会WA#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;intmain(){//ios::sync_with_stdio(false);int T; cin>>T;while(T--){int k; cin>>k;int ok =0;for(int n =1; n <10; n++){int t = k*k*n;
string s1 =to_string(t), s2 =to_string(k);if(s1.substr(s1.size()-s2.size())==s2){
cout<<n<<" "<<t<<"\n";
ok =1;break;}}if(ok==0)printf("No\n");}return0;}
1092
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;int a[110][1010], sum[1010];intmain(){//ios::sync_with_stdio(false);int n, m; cin>>n>>m;//月饼1010,城市110int mx =-1;for(int i =1; i <= m; i++){for(int j =1; j <= n; j++){
cin>>a[i][j];
sum[j]+= a[i][j];
mx =max(mx, sum[j]);}}
cout<<mx<<"\n";int ok =0;for(int i =1; i <= n; i++){if(sum[i]==mx){if(ok)cout<<" ";
cout<<i;
ok =1;}}return0;}
1093
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;int a[110][1010], sum[1010];intmain(){//ios::sync_with_stdio(false);
string s1, s2;getline(cin,s1);getline(cin,s2);
set<char>se;for(int i =0; i < s1.size(); i++){if(!se.count(s1[i]))cout<<s1[i];
se.insert(s1[i]);}for(int i =0; i < s2.size(); i++){if(!se.count(s2[i]))cout<<s2[i];
se.insert(s2[i]);}return0;}
1094
#include<bits/stdc++.h>usingnamespace std;constint maxn =100010;int a[110][1010], sum[1010];boolisprime(int n){for(int i =2; i*i<=n; i++)if(n%i==0)return0;return1;}intmain(){//ios::sync_with_stdio(false);int l, k; string s;
cin>>l>>k>>s;for(int i =0; i <= l-k; i++){int x =stoi(s.substr(i,k));if(isprime(x)){//WA2,前导零也要输出
cout<<s.substr(i,k)<<"\n";return0;}}
cout<<"404\n";return0;}
1095
#include<bits/stdc++.h>usingnamespace std;constint maxn =1e4+10;struct node{string id;int sc;}a[maxn];boolcmp(node a, node b){return a.sc!=b.sc?a.sc>b.sc:a.id<b.id;}intmain(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int n, m; cin>>n>>m;for(int i =1; i <= n; i++)
cin>>a[i].id>>a[i].sc;for(int i =1; i <= m; i++){int op; string s; cin>>op>>s;
cout<<"Case "<<i<<": "<<op<<" "<<s<<"\n";
vector<node>ans;int cnt =0, sum =0;if(op==1){for(int j =1; j <= n; j++){if(a[j].id[0]==s[0]){
ans.push_back(a[j]);//准考证,成绩}}}elseif(op==2){for(int j =1; j <= n; j++){if(a[j].id.substr(1,3)==s){
cnt++;
sum += a[j].sc;}}if(cnt!=0)cout<<cnt<<" "<<sum<<"\n";else cout<<"NA\n";continue;}else{
map<string,int>ma;//考场编号,总人数for(int j =1; j <= n; j++){if(a[j].id.substr(4,6)==s){
ma[a[j].id.substr(1,3)]++;}}for(auto x:ma){
ans.push_back(node{x.first,x.second});}}if(ans.size()==0){cout<<"NA\n";continue;}sort(ans.begin(),ans.end(),cmp);int len = ans.size();for(int j =0; j < len; j++){
cout<<ans[j].id<<" "<<ans[j].sc<<"\n";}}return0;}