제출 #1254659

#제출 시각아이디문제언어결과실행 시간메모리
1254659Bui_Quoc_CuongPIN (CEOI10_pin)C++20
100 / 100
201 ms9280 KiB
#include <bits/stdc++.h> #define TIME (1.0 * clock() / CLOCKS_PER_SEC) #define file(task) if(fopen(task".inp", "r")) {freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout);} using namespace std; const int base = 311; const int mod = 1e9 + 7; int n, d; char a[100005][6]; void init () { cin >> n >> d; for (int i = 1; i <= n; i++) { for (int j = 1; j <= 4; j++) { cin >> a[i][j]; } } } long long dp[(1 << 5) + 5]; int getHash(int id, int mask) { int sum = 0; for (int i = 1; i <= 4; i++) if ((mask >> (i - 1)) & 1) { sum = sum * base % mod; sum = (sum + (a[id][i] - '0')) % mod; } return sum; } map <int, int> mp[(1 << 5) + 1]; void process () { long long ans = 0; for (int i = 1; i <= n; i++) { for (int mask = 0; mask < (1 << 4); mask++) { dp[mask] = mp[mask][getHash(i, mask)]; } for (int j = 0; j <= 4; j++) { for (int mask = 0; mask < (1 << 4); mask++) { if ((mask >> j) & 1) continue; dp[mask]-= dp[mask ^ (1 << j)]; } } for (int mask = 0; mask < (1 << 4); mask++) { if (__builtin_popcount(mask) != 4 - d) continue; ans+= dp[mask]; } for (int mask = 0; mask < (1 << 4); mask++) { mp[mask][getHash(i, mask)]++; } } cout << ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); file("kieuoanh"); int tc = 1; // cin >> tc; while (tc--) { init(); process(); } cerr << "\n ~ Time Elapsed ~ : " << TIME << "s.\n"; return 0; }

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

pin.cpp: In function 'int main()':
pin.cpp:3:55: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    3 | #define file(task) if(fopen(task".inp", "r")) {freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout);}
      |                                                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
pin.cpp:60:5: note: in expansion of macro 'file'
   60 |     file("kieuoanh");
      |     ^~~~
pin.cpp:3:88: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    3 | #define file(task) if(fopen(task".inp", "r")) {freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout);}
      |                                                                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
pin.cpp:60:5: note: in expansion of macro 'file'
   60 |     file("kieuoanh");
      |     ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...