제출 #342773

#제출 시각아이디문제언어결과실행 시간메모리
342773monus1042말 (IOI15_horses)C++17
17 / 100
1560 ms12348 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ll;
typedef pair<int,int> ii;
typedef long double ld;

int n;
vector<ll> x, y;
const ll MOD = 1000000007;

int solve(){
	ld acc = 1.0, best = 0.0;
	int pos = 0;
	for (int i=0; i<n; i++){
		acc = (acc * (ld)x[i]);
		if (acc * (ld)y[i] > best) best = acc * (ld)y[i], pos = i;
	}
	ll answer = 1LL;
	for (int i=0; i<=pos; i++) answer = (answer * x[i]) % MOD;
	answer = (answer * y[pos]) % MOD;
	int ret = answer;
	return ret;
}

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

int updateX(int pos, int val) {
	x[pos] = val;
	return solve();
}

int updateY(int pos, int val) {
	y[pos] = val;
	return solve();
}

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

horses.cpp: In function 'int solve()':
horses.cpp:23:12: warning: conversion from 'll' {aka 'long long unsigned int'} to 'int' may change value [-Wconversion]
   23 |  int ret = answer;
      |            ^~~~~~
#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...