Submission #971583

#TimeUsernameProblemLanguageResultExecution timeMemory
971583nguyentunglamHomework (CEOI22_homework)C++17
0 / 100
16 ms14564 KiB
#include<bits/stdc++.h> #define all(v) v.begin(), v.end() #define endl "\n" using namespace std; const int N = 1e5 + 10; pair<int, int> st[N]; int t[N]; int operation[N]; int child[2][N], a[N], order[N]; bool dd[N]; int32_t main() { #define task "" cin.tie(0) -> sync_with_stdio(0); if (fopen("task.inp", "r")) { freopen("task.inp", "r", stdin); freopen("task.out", "w", stdout); } if (fopen(task".inp", "r")) { freopen (task".inp", "r", stdin); freopen (task".out", "w", stdout); } string str; cin >> str; int p; int id = 0, _id = 0; for(char c : str) if (c == '?') _id++; int n = _id; for(int i = 0; i < str.size(); i++) { if (str[i] == 'm') { i += 3; st[++p] = make_pair(0, 0); if (i - 1 >= str.size()) exit(0); t[p] = str[i - 1] == 'x'; // cout << str[i - 1] << " " << t[p] << endl; } // else if (str[i] == '?') { // ++id; // if (st[p].first == 0) st[p].first = id; // else st[p].second = id; // } // else if (str[i] == ')') { // ++_id; // if (st[p].first == 0 || st[p].second == 0) exit(0); // assert(st[p].first && st[p].second); // child[0][_id] = st[p].first; // child[1][_id] = st[p].second; // operation[_id] = t[p]; //// cout << _id << " " << st[p].first << " " << st[p].second << " " << operation[_id] << endl; // --p; // if (p < 0) exit(0); // assert(p >= 0); // if (st[p].first == 0) st[p].first = _id; // else st[p].second = _id; // } } exit(0); auto dfs = [&] (auto self, int u) { if (u <= n) { a[u] = order[u]; return; } self(self, child[0][u]); self(self, child[1][u]); if (operation[u]) a[u] = max(a[child[0][u]], a[child[1][u]]); else a[u] = min(a[child[0][u]], a[child[1][u]]); }; for(int i = 1; i <= n; i++) order[i] = i; do { // for(int i = 1; i <= n; i++) cerr << order[i] << " "; cerr << endl; dfs(dfs, _id); dd[a[_id]] = 1; } while (next_permutation(order + 1, order + n + 1)); int ans = 0; for(int i = 1; i <= n; i++) ans += dd[i]; cout << ans; }

Compilation message (stderr)

Main.cpp: In function 'int32_t main()':
Main.cpp:42:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |   for(int i = 0; i < str.size(); i++) {
      |                  ~~^~~~~~~~~~~~
Main.cpp:46:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |       if (i - 1 >= str.size()) exit(0);
      |           ~~~~~~^~~~~~~~~~~~~
Main.cpp:37:7: warning: unused variable 'id' [-Wunused-variable]
   37 |   int id = 0, _id = 0;
      |       ^~
Main.cpp:24:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |     freopen("task.inp", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:25:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |     freopen("task.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:29:13: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |     freopen (task".inp", "r", stdin);
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:30:13: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     freopen (task".out", "w", stdout);
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:45:15: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   45 |       st[++p] = make_pair(0, 0);
      |       ~~~~~~~~^~~~~~~~~~~~~~~~~
#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...