Submission #416663

#TimeUsernameProblemLanguageResultExecution timeMemory
416663victoriadHorses (IOI15_horses)C++14
Compilation error
0 ms0 KiB
#include <cmath>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <utility>
#include <stack>
#include <vector>
#include <fstream>
#include <map>

using namespace std;
int mod=1e9+7;
vector<long long int>lista1;
vector<int>lista2;
vector<int>lista3;
vector<double>lista4;
int m;
double lm;
 
int init(int N, int X[], int Y[]) {
	lista1.resize(N);
	lista2.resize(N);
	lista3.resize(N);
	lista4.resize(N);
	for(int i=0;i<N;i++)lista2[i]=Y[i];
	for(int i=0;i<N;i++)lista3[i]=X[i];
	double j=0;
	double r2=0;
	int a=1;
	int o=0;
	for(int i=0;i<N;i++){
		r2+=log10(X[i]);
		lista4[i]=r2;
		a%=mod;
		lista1[i]=(a*X[i])%mod;
		lista1[i]%=mod;
		a=lista1[i];
		if(r2+log10(Y[i])>j){
			j=r2+log10(Y[i]);
			o=i;
		}
	}
	lm=j;
	for(int i=0;i<N;i++)cout<<lista1[i];
	m=((lista1[o]%mod)*Y[o])%mod;
	return m;
}
 
int updateX(int pos, int val) {
	double j=0;
	double r2=0;
	int a=1;
	int o=0;
	lista3[pos]=val;
	for(int i=0;i<lista1.size();i++){
		r2+=log10(lista3[i]);
		lista4[i]=r2;
		a%=mod;
		lista1[i]=(a*lista3[i])%mod;
		lista1[i]%=mod;
		a=lista1[i];
		if(r2+log10(lista2[i])>j){
			j=r2+log10(lista2[i]);
			o=i;
		}
	}
	lm=j;
	m=((lista1[o]%mod)*lista2[o])%mod;
	return m;
 
}
 
int updateY(int pos, int val) {
	if(lm<lista4[pos]+log10(val)){
		m=(lista1[pos]*val)%mod;
	}
	return m;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m,a,b,c;
	cin>>n;
	int x[n],y[n];
	for(int i=0;i<n;i++)cin>>x[i];
	for(int i=0;i<n;i++)cin>>y[i];
	cout<<init(n,x,y)<<"\n";
	cin>>m;
	while(m--){
		cin>>a>>b>>c;
		if(a==2){
			cout<<updateX(b,c)<<"\n";
		}
		else{
			cout<<updateY(b,c)<<"\n";
		}
	}
    return 0;
}

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:37:13: 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]
   37 |   a=lista1[i];
      |             ^
horses.cpp:45: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]
   45 |  m=((lista1[o]%mod)*Y[o])%mod;
      |    ~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:55:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |  for(int i=0;i<lista1.size();i++){
      |              ~^~~~~~~~~~~~~~
horses.cpp:61:13: 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]
   61 |   a=lista1[i];
      |             ^
horses.cpp:68:31: 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]
   68 |  m=((lista1[o]%mod)*lista2[o])%mod;
      |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:75:22: 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]
   75 |   m=(lista1[pos]*val)%mod;
      |     ~~~~~~~~~~~~~~~~~^~~~
horses.cpp: In function 'int main()':
horses.cpp:82:11: warning: declaration of 'm' shadows a global declaration [-Wshadow]
   82 |     int n,m,a,b,c;
      |           ^
horses.cpp:17:5: note: shadowed declaration is here
   17 | int m;
      |     ^
/usr/bin/ld: /tmp/ccLBHVFG.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/ccuD3B2H.o:horses.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status