제출 #247676

#제출 시각아이디문제언어결과실행 시간메모리
247676super_j6Horses (IOI15_horses)C++14
컴파일 에러
0 ms0 KiB
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> using namespace std; #define endl '\n' #define ll long long #define ld long double #define pi pair<int, int> #define f first #define s second #define vi vector<int> const int mod = 1000000007; struct mint{ int x; ld y; mint(int x = 0) : x(x), y(x) {} mint(int x, ld y) : x(x), y(y) {} explicit operator int() const{ return x;} friend mint operator+(mint a, mint b){ return mint((a.x + b.x) % mod, a.y + b.y); } friend mint operator*(mint a, mint b){ return mint((ll)a.x * b.x % mod, a.y * b.y); } friend bool operator<(mint a, mint b){ return a.y < b.y; } }; struct segTree{ int l, r; segTree *left, *right; mint val[2]; segTree(int a, int b){ l = a, r = b; if(l != r){ int mid = (l + r) / 2; left = new segTree(l, mid); right = new segTree(mid + 1, r); } } void add(int x, mint v, int t){ if(x < l || r < x) return; if(l == r){ val[t] = v * (t ? val[0] : 1); return; } left->add(x, v, t); right->add(x, v, t); val[0] = left->val[0] * right->val[0]; val[1] = max(left->val[1], left->val[0] * right->val[1]); } } *tre; int sol(){ return (int)tre->val[1]; } int init(int n, vi x, vi y){ tre = new segTree(0, n - 1); for(int i = 0; i < n; i++){ tre->add(i, x[i], 0); tre->add(i, y[i], 1); } return sol(); } int updateX(int a, int b){ tre->add(a, b, 0); return sol(); } int updateY(int a, int b){ tre->add(a, b, 1); return sol(); } /* int main(){ ios::sync_with_stdio(0); cin.tie(0); int n, q; vi x, y; cin >> n; x.resize(n), y.resize(n); for(int &i : x) cin >> i; for(int &i : y) cin >> i; cout << init(n, x, y) << endl; cin >> q; while(q--){ int t, a, b; cin >> t >> a >> b; cout << (!t ? updateX(a, b) : updateY(a, b)) << endl; } return 0; } */

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

horses.cpp: In constructor 'mint::mint(int)':
horses.cpp:19:18: warning: declaration of 'x' shadows a member of 'mint' [-Wshadow]
  mint(int x = 0) : x(x), y(x) {}
                  ^
horses.cpp:16:6: note: shadowed declaration is here
  int x;
      ^
horses.cpp: In constructor 'mint::mint(int, long double)':
horses.cpp:20:20: warning: declaration of 'y' shadows a member of 'mint' [-Wshadow]
  mint(int x, ld y) : x(x), y(y) {}
                    ^
horses.cpp:17:5: note: shadowed declaration is here
  ld y;
     ^
horses.cpp:20:20: warning: declaration of 'x' shadows a member of 'mint' [-Wshadow]
  mint(int x, ld y) : x(x), y(y) {}
                    ^
horses.cpp:16:6: note: shadowed declaration is here
  int x;
      ^
horses.cpp: In function 'mint operator*(mint, mint)':
horses.cpp:28:29: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
   return mint((ll)a.x * b.x % mod, a.y * b.y);
               ~~~~~~~~~~~~~~^~~~~
/tmp/ccF4S2bV.o: In function `main':
grader.c:(.text.startup+0x2db): undefined reference to `init(int, int*, int*)'
collect2: error: ld returned 1 exit status