Submission #375723

# Submission time Handle Problem Language Result Execution time Memory
375723 2021-03-09T21:14:32 Z YJU PIN (CEOI10_pin) C++14
60 / 100
514 ms 21100 KB
#include<bits/stdc++.h>
#pragma GCC optimize("unroll-loops,no-stack-protector,Ofast")
using namespace std;
typedef int ll;
typedef long double ld;
typedef pair<ll,ll> pll;
const ll MOD=1e9+9;
const ll MOD2=998244353;
const ll N=5e4+5;
const ld pi=acos(-1);
#define SQ(i) ((i)*(i))
#define REP(i,n) for(ll i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define pb push_back
#define mp make_pair
#define X first
#define Y second
#define setp setprecision
#define lwb lower_bound
#define SZ(_a) (ll)_a.size()
#define count(_a) (ll)__builtin_popcount(_a)

ll n,d,v[N][4],u[16];
string s;
map<vector<ll>,ll> mm;
ll ans[5];

ll num(char c){
	return ((c>='0'&&c<='9')?c-'0':10+c-'a');
}

int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);
	cin>>n>>d;
	REP(i,n){
		cin>>s;
		REP(j,4)v[i][j]=num(s[j]);
		for(ll mask=0;mask<(1<<4);++mask){
			vector<ll> vec;
			REP(j,4){
				if((mask>>j)&1)vec.pb(v[i][j]+1);
				else vec.pb(0);
			}
			++mm[vec];
		}
	}
	for(auto i:mm){
		ll bit=(1<<4)-1;
		REP(j,4){
			if(i.X[j]==0)bit^=(1<<j);
		}
		u[bit]+=((i.Y)*(i.Y-1)/2);
	}
	for(int i=(1<<4);i>=0;i--){
		for(int j=0;j<4;j++){
			if(!((i>>j)&1)){
				u[i]-=u[i^(1<<j)];
			}
		}
		ans[count(i)]+=u[i];
	}
	cout<<ans[4-d]<<"\n";
	return 0;
}

# Verdict Execution time Memory Grader output
1 Correct 12 ms 1388 KB Output is correct
2 Correct 13 ms 1260 KB Output is correct
3 Incorrect 8 ms 1132 KB Output isn't correct
4 Correct 126 ms 4844 KB Output is correct
5 Correct 149 ms 5356 KB Output is correct
6 Correct 153 ms 5452 KB Output is correct
7 Correct 128 ms 4844 KB Output is correct
8 Correct 186 ms 5740 KB Output is correct
9 Correct 286 ms 7916 KB Output is correct
10 Correct 313 ms 8556 KB Output is correct
11 Correct 158 ms 5684 KB Output is correct
12 Incorrect 300 ms 8192 KB Output isn't correct
13 Incorrect 166 ms 5996 KB Output isn't correct
14 Incorrect 152 ms 5740 KB Output isn't correct
15 Incorrect 286 ms 8172 KB Output isn't correct
16 Correct 361 ms 15884 KB Output is correct
17 Correct 514 ms 21100 KB Output is correct
18 Incorrect 361 ms 17388 KB Output isn't correct
19 Incorrect 473 ms 19436 KB Output isn't correct
20 Incorrect 503 ms 21000 KB Output isn't correct