//Yel
#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false); cin.tie(0);
#define pb push_back
#define np next_permutation
#define YES {cout<<"YES";rt}
#define NO {cout<<"NO";rt;}
#define Yes cout<<"Yes";
#define No cout<<"No";
#define rep(st,pl,en) for(ll i=st;i<=en;i+=pl)
#define ll long long
#define sz size()
#define pi pair<int,int>
#define F first
#define S second
#define dot fixed<<setprecision
#define str string
#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define rt return
#define dl long double
#define Pi 3.141592653589793238462643383279
#define cnl cout<<'\n';
#define nl '\n'
#define int ll
#define co continue
#define open freopen("slalom.in","r",stdin);freopen("slalom.out","w",stdout);
using namespace std;
const int inf=1e18,mod=1e9+7,N=5e5+9;
int res=0;
vector <string> v[5];
vector <string> vec[15];
vector <string> vic[30];
void abdu_abi(){
int n,di;
cin>>n>>di;
for(int i=1;i<=n;i++){
str s;
cin>>s;
//sec=s;
for(int j=1;j<=4;j++){
str sec=s;
sec.erase(sec.begin()+j-1);
v[j].pb(sec);
}
for(int j=1;j<=4;j++){
for(int q=j+1;q<=4;q++){
str sec=s;
sec.erase(sec.begin()+j-1);
sec.erase(sec.begin()+q-2);
vec[j*q].pb(sec);
}
}
for(int j=1;j<=4;j++){
for(int q=j+1;q<=4;q++){
for(int e=q+1;e<=4;e++){
str sec=s;
sec.erase(sec.begin()+j-1);
sec.erase(sec.begin()+q-2);
sec.erase(sec.begin()+e-3);
vic[j*q*e].pb(sec);
}
}
}
}
int one=0;
for(int k=1;k<=4;k++){
int cnt=1;
sort(all(v[k]));
for(int i=1;i<v[k].sz;i++){
if(v[k][i]==v[k][i-1]){
cnt++;
}
else{
one+=cnt*(cnt-1)/2;
cnt=1;
}
}
one+=cnt*(cnt-1)/2;
}
int dos=0;
for(int k=1;k<=12;k++){
int cnt=1;
sort(all(vec[k]));
for(int i=1;i<vec[k].sz;i++){
if(vec[k][i]==vec[k][i-1]){
cnt++;
}
else{
dos+=cnt*(cnt-1)/2;
cnt=1;
}
}
dos+=cnt*(cnt-1)/2;
}
dos-=one*3;
int tres=0;
for(int k=1;k<=24;k++){
int cnt=1;
sort(all(vic[k]));
for(int i=1;i<vic[k].sz;i++){
if(vic[k][i]==vic[k][i-1]){
cnt++;
}
else{
tres+=cnt*(cnt-1)/2;
cnt=1;
}
}
tres+=cnt*(cnt-1)/2;
}
tres-=dos*2;
tres-=one*3;
int all=(n*(n-1))/2-one-dos-tres;
int ans[10]={0,one,dos,tres,all};
cout<<ans[di];
}
main(){
//open;
fast;
int t=1;
//cin>>t;
while(t--){
abdu_abi();
}
}
컴파일 시 표준 에러 (stderr) 메시지
pin.cpp:118:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
118 | main(){
| ^~~~| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |