제출 #137329

#제출 시각아이디문제언어결과실행 시간메모리
137329eohomegrownappsHorses (IOI15_horses)C++14
17 / 100
1561 ms19960 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll md = 1000000007;
vector<pair<ll,ll> > x;
vector<pair<ll,ll> > y;
ll n;

pair<ll,ll> mult(pair<ll,ll> a, pair<ll,ll> b){
	ll mod = a.first*b.first*md+a.second*b.first+a.first*b.second;
	ll i = a.second*b.second;
	mod+=(i/md);
	i=i%md;
	return make_pair(mod,i);
}

int query(){
	pair<ll,ll> mx = make_pair(0,1);
	pair<ll,ll> current = make_pair(0,1);
	for (ll i = 0; i<n; i++){
		current=mult(current,x[i]);
		auto ans = mult(current,y[i]);
		if (ans>mx){
			mx=ans;
		}
	}
	return mx.second;
}

int init(int N, int X[], int Y[]) {
	n=N;
	x.resize(n);
	y.resize(n);
	for (ll i = 0; i<n; i++){
		x[i]=make_pair(0,X[i]);
		y[i]=make_pair(0,Y[i]);
	}
	return query();
}

int updateX(int pos, int val) {
	x[pos]=make_pair(0,val);
	return query();
}

int updateY(int pos, int val) {
	y[pos]=make_pair(0,val);
	return query();
}

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

horses.cpp: In function 'int query()':
horses.cpp:28:12: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return mx.second;
         ~~~^~~~~~
#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...