Submission #334278

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
3342782020-12-08 22:55:21ChrisTSnake Escaping (JOI18_snake_escaping)C++17
100 / 100
1865 ms65536 KiB
#include <bits/stdc++.h>
using namespace std;
int val[1 << 20], sum1[1 << 20], sum2[1 << 20], nmask[1 << 6];
vector<int> pre[1 << 20];
char str[25];
int main() { //nut
int n,q;
scanf ("%d %d",&n,&q);
for (int i = 0; i < (1 << n); i++) {
char ch; scanf (" %c",&ch);
sum2[((1 << n) - 1) ^ i] = sum1[i] = val[i] = ch - '0';
}
for (int i = 0; i < n; i++) {
for (int mask = 0; mask < (1 << n); mask++) if (mask >> i & 1) {
sum1[mask] += sum1[mask ^ (1 << i)];
sum2[mask] += sum2[mask ^ (1 << i)];
}
}
for (int mask = 0; mask < (1 << n); mask++) if (__builtin_popcount(mask) <= n/3) {
vector<int> pos;
for (int i = 0; i < n; i++) if (mask >> i & 1) pos.push_back(i);
for (int mask2 = 0; mask2 < (1 << (int)pos.size()); mask2++) {
int nmask = 0;
for (int i = 0; i < (int)pos.size(); i++) if (mask2 >> i & 1) nmask |= (1 << pos[i]);
pre[mask].push_back(nmask);
}
}
while (q--) {
scanf ("%s",str);
reverse(str,str+n);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

snake_escaping.cpp: In function 'int main()':
snake_escaping.cpp:8:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    8 |  scanf ("%d %d",&n,&q);
      |  ~~~~~~^~~~~~~~~~~~~~~
snake_escaping.cpp:10:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   10 |   char ch; scanf (" %c",&ch);
      |            ~~~~~~^~~~~~~~~~~
snake_escaping.cpp:29:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   29 |   scanf ("%s",str);
      |   ~~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...