Submission #1243147

#TimeUsernameProblemLanguageResultExecution timeMemory
1243147moondarkside말 (IOI15_horses)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; #define MODULO ((long long) (1e9+7)) struct Point{ int inMult; int outMult; int SellMult; bool inOver; }; vector<struct Point> Segtree; int num; vector<int> Yg; vector<int> Xg; struct Point update(struct Point cr,int pos,int l,int r,int n){ if(r<pos){ return Segtree[n]; } if(pos<l){ return Segtree[n]; } if(r==l && l==pos){ Segtree[n]=cr; return Segtree[n]; } struct Point left=update(cr,pos,l,(l+r)/2,2*n); struct Point right=update(cr,pos,(l+r)/2+1,r,2*n+1); long long mult=left.outMult*right.inMult; bool over= mult>=MODULO || right.inOver; struct Point New; if(over || mult*right.SellMult>=left.SellMult){ New={mult%MODULO,right.outMult,right.SellMult,over}; } else{ New={left.inMult,right.inMult*right.outMult*left.outMult,left.SellMult,left.inOver}; } Segtree[n]=New; return Segtree[n]; } int init(int N,vector<int> X,vector<int> Y){ Xg=X; Yg=Y; Segtree=vector<struct Point>(N*8); num=N-1; for(int i=0;i<N;i++){ struct Point temp={X[i],1,Y[i],false}; update(temp,i,0,num,1); } return (Segtree[1].inMult*Segtree[1].SellMult)%MODULO; } int updateX(int pos,int val){ Xg[pos]=val; struct Point temp={val,1,Yg[pos],false}; update(temp,pos,0,num,1); return (Segtree[1].inMult*Segtree[1].SellMult)%MODULO; } int updateY(int pos,int val){ Yg[pos]=val; struct Point temp={Xg[pos],1,val,false}; update(temp,pos,0,num,1); return (Segtree[1].inMult*Segtree[1].SellMult)%MODULO; }

Compilation message (stderr)

horses.cpp: In function 'Point update(Point, int, int, int, int)':
horses.cpp:42:18: warning: narrowing conversion of '(mult % (long long int)(1.0e+9 + (double)7))' from 'long long int' to 'int' [-Wnarrowing]
   42 |         New={mult%MODULO,right.outMult,right.SellMult,over};
      |                  ^
/usr/bin/ld: /tmp/ccdCGSdp.o: in function `main':
grader.c:(.text.startup+0xb1): undefined reference to `init(int, int*, int*)'
collect2: error: ld returned 1 exit status