atcoder abc247
A
舍去最后一位前补0。
#include<bits/stdc++.h>
int main(){int i;std::cin>>i;printf("%04d",i/10);}
B
名字不能与他人的姓和名相同,map直接查重。
#include<bits/stdc++.h>
using namespace std;
string a,b;int n;
map<string,bool>m;
int main() {
cin >> n;
while(n--&&cin>>a>>b){
if(m[b]){cout<<"No";exit(0);}
m[a]=m[b]=1;
}
cout<<"Yes";
}
C
递推一下,我觉得可以打表
#include<bits/stdc++.h>
using namespace std;
int main() {
string s="1"; int n;cin>>n;
for(int i=2;i<=n;i++)s=s+" "+to_string(i)+" "+s;
cout<<s;
}
D
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x,c,A;
queue<pair<int,ll>>p;
int main(){
cin>>x;
while(cin>>x){
if(x==2){
cin>>c;A=0;
while(c>0){
auto &[X,C]=p.front();
A+=X*min(c,C),c-=C,C=-c;
if(C<=0)p.pop();
}
cout<<A<<endl;
}
else{
cin>>x>>c;
p.push({x,c});
}
}
}