제출 #1151305

#제출 시각아이디문제언어결과실행 시간메모리
1151305abczzNaan (JOI19_naan)C++20
컴파일 에러
0 ms0 KiB
#include <iostream> #include <numeric> #define ll long long using namespace std; vector <ll> V; ll n, l, A[2000][2000], S[2000]; bool B[2000]; struct Frac{ ll a; ll b; }; Frac tot[2000]; Frac simplify(Frac A) { ll x = gcd(A.a, A.b); return {A.a/x, A.b/x}; } Frac operator+(Frac A, Frac B) { return simplify({A.a*B.b+A.b*B.a, A.b*B.b}); } Frac operator-(Frac A, Frac B) { return simplify({A.a*B.b-A.b*B.a, A.b*B.b}); } Frac operator*(Frac A, Frac B) { return simplify({A.a*B.a, A.b*B.b}); } Frac operator/(Frac A, Frac B) { return simplify({A.a*B.b, A.b*B.a}); } bool lt(Frac A, Frac B) { return A.a*B.b < A.b*B.a; } bool lte(Frac A, Frac B) { return A.a*B.b <= A.b*B.a; } void reset() { for (int i=0; i<n; ++i) { tot[i] = simplify({S[i], n}); } } void print(Frac A) { cout << A.a << " " << A.b << '\n'; } int main() { cin.tie(0); ios::sync_with_stdio(0); cin >> n >> l; for (int i=0; i<n; ++i) { for (int j=0; j<l; ++j) { cin >> A[i][j]; S[i] += A[i][j]; } } reset(); for (int j=0; j<l; ++j) { Frac cur = {0, 1}; while (true) { ll id = -1; Frac tmp = {1, 1}; for (int i=0; i<n; ++i) { if (B[i]) continue; auto v = tot[i]/Frac({A[i][j], 1}); if (lt(v, tmp) && lte(cur+v, Frac{1, 1})) { tmp = v; id = i; } } if (id == -1) { for (int i=0; i<n; ++i) { auto u = Frac({1, 1})-cur; u = u * Frac({A[i][j], 1}); tot[i] = tot[i] - u; } break; } V.push_back(id+1); B[id] = 1; auto v = tot[id]/Frac({A[id][j], 1}); cur = cur + v; print(Frac{j, 1} + cur); reset(); if (V.size() == n-1) break; } if (V.size() == n-1) break; } for (auto u : V) { cout << u << " "; } for (int i=0; i<n; ++i) { if (!B[i]) cout << i+1 << " "; } cout << '\n'; }

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

naan.cpp:7:1: error: 'vector' does not name a type
    7 | vector <ll> V;
      | ^~~~~~
naan.cpp: In function 'int main()':
naan.cpp:78:7: error: 'V' was not declared in this scope
   78 |       V.push_back(id+1);
      |       ^
naan.cpp:86:9: error: 'V' was not declared in this scope
   86 |     if (V.size() == n-1) break;
      |         ^
naan.cpp:88:17: error: 'V' was not declared in this scope
   88 |   for (auto u : V) {
      |                 ^