A.ABC/ARC
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
using namespace std;
typedef long long ll;
int n;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
if(n<1200)
cout<<"ABC\n";
else
cout<<"ARC\n";
return 0;
}
B.A to Z String
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
using namespace std;
typedef long long ll;
string s;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>s;
int pos1,pos2;
for(int i=0;i<s.size();i++){
if(s[i]=='A'){
pos1=i;
// cout<<pos1<<endl;
break;
}
}
for(int i=s.size()-1;i>=0;i--){
if(s[i]=='Z'){
pos2=i;
// cout<<pos2<<endl;
break;
}
}
cout<<pos2-pos1+1<<"\n";
return 0;
}
C.Card Eater
大概就是给一个数,问最少骰子滚多少次能
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
using namespace std;
typedef long long ll;
ll n;
const int mod=11;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
ll ans=0;
ans=n/mod*2;
n%=mod;
if(n<=6&&n>=1)
ans++;
if(n>=7&&n<=10)
ans+=2;
cout<<ans<<"\n";
return 0;
}
D.Card Eater
考虑贪心的策略,把重复的全去掉,而且每次只能去掉两个,所以如结果是偶数就-1,奇数的直接输出。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
using namespace std;
typedef long long ll;
int n,x;
map<int,int> m;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
m[x]++;
}
int len=m.size();
if(len&1)
cout<<len;
else
cout<<len-1;
return 0;
}