Submission #394693

#TimeUsernameProblemLanguageResultExecution timeMemory
394693MarcoMeijerLanguages (IOI10_languages)C++14
Compilation error
0 ms0 KiB
#include "grader.h" #include "lang.h" #include <bits/stdc++.h> using namespace std; // macros typedef long long ll; typedef long double ld; typedef pair<int, int> ii; typedef pair<ll, ll> lll; typedef tuple<int, int, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef vector<iii> viii; typedef vector<ll> vll; typedef vector<lll> vlll; #define REP(a,b,c) for(int a=int(b); a<int(c); a++) #define RE(a,c) REP(a,0,c) #define RE1(a,c) REP(a,1,c+1) #define REI(a,b,c) REP(a,b,c+1) #define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--) #define FOR(a,b) for(auto& a : b) #define all(a) a.begin(), a.end() #define INF 1e9 #define EPS 1e-9 #define pb push_back #define popb pop_back #define fi first #define se second #define sz size() mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); const int MX = 761; double mp[56][MX][MX]; double rec[MX][MX]; double cnt[56]; set<int> possible; int h(int x) { return x%MX; } void excerpt(int *E) { static bool first = true; if(first) { RE(i,56) RE(j,MX) RE(k,MX) mp[i][j][k] = 0.0; RE(i,56) RE(j,MX) RE(k,MX) rec[i][j][k] = 0.0; RE(i,56) cnt[i] = 0.0; first = false; } int asking = 0; double best = 0.0; FOR(j,possible) { double cur = 0.0; RE(i,99) rec[h(E[i])][h(E[i+1])] += 1.0 RE(i,99) { double val = mp[j][h(E[i])][h(E[i+1])] / cnt[j]; cur += pow(val*rec[h(E[i])][h(E[i+1])],0.25); } RE(i,99) rec[h(E[i])][h(E[i+1])] = 0.0; if(cur > best) best = cur, asking = j; } int res = language(asking); possible.insert(res); RE(i,99) mp[res][h(E[i])][h(E[i+1])] += 1.0; cnt[res] += 1.0; }

Compilation message (stderr)

lang.cpp: In function 'void excerpt(int*)':
lang.cpp:48:47: error: invalid types 'double[int]' for array subscript
   48 |         RE(i,56) RE(j,MX) RE(k,MX) rec[i][j][k] = 0.0;
      |                                               ^
lang.cpp:56:48: error: expected ';' before 'for'
   56 |         RE(i,99) rec[h(E[i])][h(E[i+1])] += 1.0
      |                                                ^
      |                                                ;
lang.cpp:57:12: error: 'i' was not declared in this scope
   57 |         RE(i,99) {
      |            ^
lang.cpp:17:38: note: in definition of macro 'REP'
   17 | #define REP(a,b,c) for(int a=int(b); a<int(c); a++)
      |                                      ^
lang.cpp:57:9: note: in expansion of macro 'RE'
   57 |         RE(i,99) {
      |         ^~