Codeforces Round 979 (Div. 2) A~C
本场链接 D泰难,看下别人代码,看明白了有时间再更
A.A Gift From Orangutan
签到题,不难发现只要把最大数放在第一个和最小数放在第二个就能满足题意,直接交
int n;
cin >> n;
int max = -1,min = 0x3f3f3f3f;
for(int i = 1;i <= n;i++){
cin >> a[i];
max = std::max(a[i],max);
min = std::min(a[i],min);
}
cout << (max - min)*(n - 1) << '\n';
B. Minimise Oneness
因此只需要有一个1就好
void solve(){
int n;
cin >> n;
cout << 1;
for(int i = 1;i <= n - 1;i++){
cout << 0;
}
cout << '\n';
}
C.A True battle
如果开头或者结尾是1,只需要添加or就行,如果有两个连续1,在其之间添加and,边上添加or,就能全部是1,判断这样的条件即可
void solve(){
int n;
cin >> n;
std::string a;
cin >> a;
if(a.front() == '1'){
cout << "YES" << '\n';
return;
}
if(a.back() == '1'){
cout << "YES" << '\n';
return;
}
for(int i = 1;i < a.size();i++){
if(a[i] == a[i - 1] && a[i] == '1'){
cout << "YES\n";
return;
}
}
cout << "NO\n";
}
D.QED's Favorite Permutation
依然是看到D题没有思路,希望多做会有进步