Submission #1323196

#TimeUsernameProblemLanguageResultExecution timeMemory
1323196lorrelfPIN (CEOI10_pin)C++20
100 / 100
202 ms20132 KiB
//Beiba.cpp rulit! #include <bits/stdc++.h> using namespace std; #define open freopen ("sum.in","r",stdin), freopen ("sum.out","w",stdout); #define nl '\n' #define ll long long int #define pb push_back #define sz size() #define all(x) x.begin(), x.end() #define S second #define F first #define co continue #define NO cout<<"NO"<<nl #define YES cout<<"YES"<<nl #define No cout<<"No"<<nl #define Yes cout<<"Yes"<<nl #define rt return #define str string #define pot fixed<<setprecision #define int ll #define pi pair<int,int> #define vi vector #define MAI INT64_MAX #define MII INT64_MIN const int inf=1e18, mod=1e9+7, N=3e5+7; int n,d,ans1,ans2,ans3,ans4; str a[N]; map <str,int> cnt; void ibrosh_abi(){ cin>>n>>d; for(int i=1; i<=n; i++) cin>>a[i]; sort(a+1,a+n+1); for(int i=1; i<=n; i++){ str s=a[i]; for(int pos1=0; pos1<4; pos1++){ s[pos1]='#'; cnt[s]++; s=a[i]; } for(int pos1=0; pos1<4; pos1++){ for(int pos2=pos1+1; pos2<4; pos2++){ s[pos1]='#'; s[pos2]='#'; cnt[s]++; s=a[i]; } } for(int pos3=0; pos3<4; pos3++){ for(int apos=0; apos<4; apos++){ if(apos==pos3) co; s[apos]='#'; } cnt[s]++; s=a[i]; } } for(int i=1; i<=n; i++){ str s=a[i]; for(int pos1=0; pos1<4; pos1++){ s[pos1]='#'; ans1+=cnt[s]-1; s=a[i]; } for(int pos1=0; pos1<4; pos1++){ for(int pos2=pos1+1; pos2<4; pos2++){ s[pos1]='#'; s[pos2]='#'; ans2+=cnt[s]-1; s=a[i]; } } for(int pos3=0; pos3<4; pos3++){ for(int apos=0; apos<4; apos++){ if(apos==pos3) co; s[apos]='#'; } ans3+=cnt[s]-1; s=a[i]; } } ans1/=2; ans2/=2; ans3/=2; ans2-=(3*ans1); ans3-=(2*ans2); ans3-=(3*ans1); ans4=((n*(n-1))/2)-(ans1+ans2+ans3); if(d==1) cout<<ans1; else if(d==2) cout<<ans2; else if(d==3) cout<<ans3; else cout<<ans4; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); //open int tt=1,cas=1; //cin>>tt; while(tt--){ //cout<<"Case "<<cas++<<": "; ibrosh_abi(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...