Submission #800816

#TimeUsernameProblemLanguageResultExecution timeMemory
800816LiudasHorses (IOI15_horses)C++17
0 / 100
121 ms41096 KiB
#include <bits/stdc++.h> #include "horses.h" using namespace std; class segtree{ public: struct nodes{ double logx, logy; long long X, Y; }; vector<int> X, Y; vector<nodes> tree; int N; long long MOD = 1e9 + 7; nodes comp(nodes a, nodes b){ nodes c = a; if(a.logy < b.logx + b.logy){ c.logx += b.logx; c.logy = b.logy; c.X = c.X * b.X % MOD; c.Y = b.Y; } return c; } void init(int NN){ X.resize(NN); Y.resize(NN); int K = 1; while(K <= NN) K *= 2; N = K; tree.assign(K * 2, {0, 0, 0, 0}); } void add(int node, int l, int r, int pos){ if(pos < l || pos >= r){ return; } if(r - l == 1){ tree[node].X = X[pos]; tree[node].logx = log((double)X[pos]); tree[node].logy = log((double)Y[pos]); tree[node].Y = Y[pos]; return; } int mid = (l + r) / 2; if(pos < mid){ add(node * 2 + 1, l, mid, pos); } else{ add(node * 2 + 2, mid, r, pos); } tree[node] = comp(tree[node * 2 + 1], tree[node * 2 + 2]); } void add(int pos){ add(0, 0, N, pos); } long long ans(){ return tree[0].X * tree[0].Y % MOD; } }; segtree tree; int init(int NN, int XX[], int YY[]){ int N = NN; tree.init(N); for(int i = 0; i < N; i ++){ tree.X[i] = XX[i]; tree.Y[i] = YY[i]; tree.add(i); } return tree.ans(); } int updateX(int pos, int val){ return 0; } int updateY(int pos, int val){ return 0; }

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:68:20: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   68 |     return tree.ans();
      |            ~~~~~~~~^~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:70:17: warning: unused parameter 'pos' [-Wunused-parameter]
   70 | int updateX(int pos, int val){
      |             ~~~~^~~
horses.cpp:70:26: warning: unused parameter 'val' [-Wunused-parameter]
   70 | int updateX(int pos, int val){
      |                      ~~~~^~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:73:17: warning: unused parameter 'pos' [-Wunused-parameter]
   73 | int updateY(int pos, int val){
      |             ~~~~^~~
horses.cpp:73:26: warning: unused parameter 'val' [-Wunused-parameter]
   73 | int updateY(int pos, int val){
      |                      ~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...