제출 #163594

#제출 시각아이디문제언어결과실행 시간메모리
163594knon0501말 (IOI15_horses)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

long double seg[2000001];
long double lazy[2000001];
long double x[500001];
long double s[500001];
long double y[500001];
const long long D=1e9+7;
int n,m,nn;

long long pow2(long long x,long long y){
    if(y==0)return 1;
    long long k=pow2(x,y/2);
    if(y%2)return k*k%D*x%D;
    return k*k%D;
}
int f(long double x){
    long long y=(long long)x;
    long double k=x-y;
    long long ret=pow2(10,y);
    long double z=pow(10,k);
    return ((long long)round(z*ret))%D;
}

void upd(int lef,int rig,int x,int y,int lev,long double k){
    seg[lev]+=lazy[lev];
    if(lev<nn){
        lazy[lev*2]+=lazy[lev];
        lazy[lev*2+1]+=lazy[lev];
    }
    lazy[lev]=0;
    if(lef>y || x>rig)return;
    if(x<=lef && rig<=y){
        seg[lev]+=k;
        if(lev<nn){
            lazy[lev*2]+=k;
            lazy[lev*2+1]+=k;
        }
        return;
    }
    int mid=(lef+rig)/2;
    upd(lef,mid,x,y,lev*2,k);
    upd(mid+1,rig,x,y,lev*2+1,k);
    seg[lev]=max(seg[lev*2],seg[lev*2+1]);
}
int main(){
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    cin>>n;
    for(nn=1 ; nn<n  ; nn*=2);
    int i,j;
    for(i=0 ; i<n; i++){
        cin>>x[i];
        x[i]=log10(x[i]);
        if(i>0)
        s[i]=s[i-1]+x[i];
        else
            s[i]=x[i];
    }
    for(i=0 ; i<n ; i++){
        cin>>y[i];
        y[i]=log10(y[i]);
    }
    for(i=0 ; i<n ; i++){
        seg[nn+i]=s[i]+y[i];
    }
    for(i=nn-1 ; i>=1 ; i--){
        seg[i]=max(seg[i*2],seg[i*2+1]);
    }
    ///cout<<seg[1]<<"\n";
    cout<<f(seg[1])<<"\n";
    cin>>m;
    for(i=0 ; i<m ; i++){
        int q,w,e;
        cin>>q>>w>>e;
        if(q==1){
            upd(0,nn-1,w,n-1,1,log10((double)e)-x[w]);
            x[w]=log10((double)e);
        }
        else{
            upd(0,nn-1,w,w,1,log10((double)e)-y[w]);
            y[w]=log10((double)e);
        }
        cout<<f(seg[1]);
    }
    return 0;
}

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

horses.cpp: In function 'long long int pow2(long long int, long long int)':
horses.cpp:12:39: warning: declaration of 'y' shadows a global declaration [-Wshadow]
 long long pow2(long long x,long long y){
                                       ^
horses.cpp:8:13: note: shadowed declaration is here
 long double y[500001];
             ^
horses.cpp:12:39: warning: declaration of 'x' shadows a global declaration [-Wshadow]
 long long pow2(long long x,long long y){
                                       ^
horses.cpp:6:13: note: shadowed declaration is here
 long double x[500001];
             ^
horses.cpp: In function 'int f(long double)':
horses.cpp:18:20: warning: declaration of 'x' shadows a global declaration [-Wshadow]
 int f(long double x){
                    ^
horses.cpp:6:13: note: shadowed declaration is here
 long double x[500001];
             ^
horses.cpp:19:15: warning: declaration of 'y' shadows a global declaration [-Wshadow]
     long long y=(long long)x;
               ^
horses.cpp:8:13: note: shadowed declaration is here
 long double y[500001];
             ^
horses.cpp:23:37: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
     return ((long long)round(z*ret))%D;
            ~~~~~~~~~~~~~~~~~~~~~~~~~^~
horses.cpp: In function 'void upd(int, int, int, int, int, long double)':
horses.cpp:26:59: warning: declaration of 'y' shadows a global declaration [-Wshadow]
 void upd(int lef,int rig,int x,int y,int lev,long double k){
                                                           ^
horses.cpp:8:13: note: shadowed declaration is here
 long double y[500001];
             ^
horses.cpp:26:59: warning: declaration of 'x' shadows a global declaration [-Wshadow]
 void upd(int lef,int rig,int x,int y,int lev,long double k){
                                                           ^
horses.cpp:6:13: note: shadowed declaration is here
 long double x[500001];
             ^
horses.cpp: In function 'int main()':
horses.cpp:52:11: warning: unused variable 'j' [-Wunused-variable]
     int i,j;
           ^
/tmp/cc33OjsD.o: In function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'
/tmp/ccG8RwOB.o:horses.cpp:(.text.startup+0x0): first defined here
/tmp/cc33OjsD.o: In function `main':
grader.c:(.text.startup+0x2db): undefined reference to `init(int, int*, int*)'
grader.c:(.text.startup+0x71a): undefined reference to `updateX(int, int)'
grader.c:(.text.startup+0x8a6): undefined reference to `updateY(int, int)'
collect2: error: ld returned 1 exit status