제출 #923755

#제출 시각아이디문제언어결과실행 시간메모리
923755IsamAnagramistica (COCI21_anagramistica)C++17
10 / 110
12 ms600 KiB
#include<bits/stdc++.h>

#define speed ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define eb emplace_back
#define all(x) x.begin(), x.end()

using namespace std;

const int sz = 1001, mod = 1e9 + 7;

int n, k, a[sz];

string s[sz];

long long get_cnt(int mask){
	long long res(0);
	unordered_map<int, int> cnt;
	for(register int i = 1; i <= n; ++i){
		if(mask & (1 << (i - 1))) cnt[a[i]]++;
	}
	for(auto &to : cnt){
		res += to.second * (to.second - 1) / 2;
		if(res >= mod) res -= mod;
	}
	return (res + mod) % mod;
}

inline void subtsk1(){
	int ans(0);
	for(int mask = 0; mask < (1 << n); ++mask){
		ans += get_cnt(mask) == k;
		ans %= mod;
	}
	cout << ans % mod << '\n';
}

map<string, int> mp;

int cntl(1);

int main(){
	speed;
	cin >> n >> k;
	for(register int i = 1; i <= n; ++i){
		cin >> s[i];
		sort(all(s[i]));
		if(!mp[s[i]]) mp[s[i]] = cntl++;
		a[i] = mp[s[i]];
	}
	subtsk1();
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

anagramistica.cpp: In function 'long long int get_cnt(int)':
anagramistica.cpp:18:19: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   18 |  for(register int i = 1; i <= n; ++i){
      |                   ^
anagramistica.cpp: In function 'int main()':
anagramistica.cpp:44:19: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   44 |  for(register int i = 1; i <= n; ++i){
      |                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...