This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
const short HORSE = 0;
const short CASH = 1;
const long long MODUL = pow(10,9) + 7;
int actual_X[999999] = { };
int actual_Y[999999] = { };
int actual_N = 0;
int an_update(int horses,int X[],int Y[],int pos,int N)
{
int maxY = 0;
for(int i = 0;i < N;i++)
{
if(maxY < Y[i] && i == pos)
{
maxY = Y[i];
}
}
if (maxY != Y[pos])
{
return 0;
}
else
{
int answ = ((horses - 1)* maxY) % MODUL;
return answ;
}
}
int init(int N, int X[], int Y[]) {
int horses_cash[2] = {1,0};
for(int i = 0;i < N;i++)
{
actual_X[i] = X[i];
actual_Y[i] = Y[i];
}
actual_N = N;
for(int i = 0;i < N;i++)
{
horses_cash[HORSE] *= X[i];
if(horses_cash[HORSE] > 1)
{
int mmry = horses_cash[CASH];
horses_cash[CASH] += an_update(horses_cash[HORSE],X,Y,i,N);
if(horses_cash[CASH] != mmry)
{
horses_cash[HORSE] = 1;
}
}
}
return horses_cash[CASH];
}
int updateX(int pos, int val) {
actual_X[pos] = val;
int horses_cash[2] = {1,0};
for(int i = 0;i < actual_N;i++)
{
horses_cash[HORSE] *= actual_X[i];
if(horses_cash[HORSE] > 1)
{
int mmry = horses_cash[CASH];
horses_cash[CASH] += an_update(horses_cash[HORSE],actual_X,actual_Y,i,actual_N);
if(horses_cash[CASH] != mmry)
{
horses_cash[HORSE] = 1;
}
}
}
return horses_cash[CASH];
}
int updateY(int pos, int val) {
actual_Y[pos] = val;
int horses_cash[2] = {1,0};
for(int i = 0;i < actual_N;i++)
{
horses_cash[HORSE] *= actual_X[i];
if(horses_cash[HORSE] > 1)
{
int mmry = horses_cash[CASH];
horses_cash[CASH] += an_update(horses_cash[HORSE],actual_X,actual_Y,i,actual_N);
if(horses_cash[CASH] != mmry)
{
horses_cash[HORSE] = 1;
}
}
}
return horses_cash[CASH];
}
Compilation message (stderr)
horses.cpp: In function 'int an_update(int, int*, int*, int, int)':
horses.cpp:14:32: warning: unused parameter 'X' [-Wunused-parameter]
int an_update(int horses,int X[],int Y[],int pos,int N)
^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |