Submission #1014041

#TimeUsernameProblemLanguageResultExecution timeMemory
1014041Error404Horses (IOI15_horses)C++17
Compilation error
0 ms0 KiB
#include "bits/stdc++.h" using namespace std; #define ll long long #define f first #define s second #define pi pair<ll,ll> #define vi vector<ll> #define vd vector<double> #define vpi vector<pi> #define pb push_back #define INF 1e18 #define endl '\n' //#define int ll #define pii pair<pi,ll> const int mod = 1e9+7; vd x, y; vi ox, oy; const int MAX = 500000; int n; struct dt { double sum, pref; int mulx,ans; }; dt t[MAX*4]; dt make_data(int i){ dt a; a.sum = x[i]; a.mulx = ox[i]; a.pref = x[i] + y[i]; a.ans = (ox[i]*oy[i])%mod; return a; } dt combine(dt a, dt b){ dt hold; hold.sum = a.sum+ b.sum; hold.mulx = ((a.mulx % mod) * (b.mulx % mod))%mod; if(a.pref > a.sum+b.pref){ hold.pref = a.pref; hold.ans = a.ans; } else{ hold.pref = a.sum+ b.pref; hold.ans = a.mulx * b.ans; } return hold; } void build(int v,int l,int r){ if(l==r){ t[v] = make_data(l); return; } int m = (l+r)/2; build(v*2,l,m); build(v*2+1,m+1,r); t[v] = combine(t[v*2],t[v*2+1]); } int initialize(int N, int a[], int b[]){ n = N; x.resize(n+1); y.resize(n+1); ox.resize(n+1); oy.resize(n+1); x[0]=0; y[0]=0; for(int i =1 ; i <= n; i++){ ox[i] = a[i-1]; oy[i] = b[i-1]; x[i] =log10(ox[i]); y[i] = log10(oy[i]); } build(1,1,n); return t[1].ans; } void update(int v, int l,int r, int pos){ if(l==r){ t[v]= make_data(l); return; } int m = (l+r)/2; if(pos<=m) update(v*2,l,m,pos); else update(v*2+1,m+1,r,pos); t[v] = combine(t[v*2],t[v*2+1]); } int updateX(int pos,int val){ pos ++; x[pos] = log10(val); ox[pos]= val; update(1,1,n,pos); return t[1].ans; } int updateY(int pos,int val){ pos++; y[pos] = log10(val); oy[pos] = val; update(1,1,n,pos); return t[1].ans; }

Compilation message (stderr)

horses.cpp: In function 'dt make_data(int)':
horses.cpp:32:18: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   32 |     a.mulx = ox[i];
      |                  ^
horses.cpp:34:26: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   34 |     a.ans = (ox[i]*oy[i])%mod;
      |             ~~~~~~~~~~~~~^~~~
/usr/bin/ld: /tmp/ccpKu8Ow.o: in function `main':
grader.c:(.text.startup+0xaa): undefined reference to `init(int, int*, int*)'
collect2: error: ld returned 1 exit status