Submission #732167

#TimeUsernameProblemLanguageResultExecution timeMemory
732167josanneo22Horses (IOI15_horses)C++17
17 / 100
1551 ms8156 KiB
#include<bits/stdc++.h> #include<iostream> #include<stdlib.h> #include<cmath> #include <algorithm> #include<numeric> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<pair<int, int> > vpii; typedef pair<ll, ll> pll; typedef vector<pll> vpll; typedef vector<ll> vll; #define FOR(i,a,b) for (int i = (a); i < (b); ++i) #define trav(a,x) for (auto& a: x) #define fr(i, a, b, s) for (int i=(a); (s)>0?i<(b):i>=(b); i+=(s)) #define mp make_pair #define pb push_back #define sz(x) int(x.size()) #define all(x) begin(x), end(x) #define rall(x) rbegin(x), rend(x) #define in insert #define yes cout<<"YES\n" #define no cout<<"NO\n" #define out(x) cout<<x<<'\n' int dx[4] = { -1, 0, 1, 0 }; int dy[4] = { 0, 1, 0, -1 }; int dx8[8]={0,0,-1,1,-1,1,-1,1}; int dy8[8]={-1,1,0,0,-1,1,1,-1}; char buf[1<<23],*p1=buf,*p2=buf; #define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++) inline int rd() { int s=0; char ch=getchar(),last; while(ch<'0'||ch>'9') last=ch,ch=getchar(); while(ch>='0'&&ch<='9') s=(s<<1)+(s<<3)+(ch^48),ch=getchar(); return last=='-'?-s:s; } int num[100]; inline void rt(int x) { if(x<0) putchar('-'),x=-x;; int len=0; do num[len++]=x%10;while(x/=10); while(len--) putchar(num[len]+'0'); } int add(int a, int b, int mod) { return (((a % mod) + (b % mod)) + mod) % mod; } int sub(int a, int b, int mod) { return (((a % mod) - (b % mod)) + mod) % mod; } int mul(int a, int b, int mod) { return (((a % mod) * (b % mod)) + mod) % mod; } int bin(int a, int b, int mod) { int ans = 1; while (b) { if (b & 1) ans = mul(ans, a, mod); a = mul(a, a, mod); b >>= 1; }return ans; } int inverse(int a, int mod) { return bin(a, mod - 2, mod); } int divi(int a, int b, int mod) { return mul(a, inverse(b, mod), mod); } #include "horses.h" int n; vector<int> p,y; const int mod=1e9+7; int solve(){ ll ans=0,pro=1; FOR(i,0,n){ pro*=p[i]; ans=max(ans,(pro*y[i]%mod)); } return (int)(ans%mod); } int init(int N, int X[], int Y[]) { n=N; p.resize(n);y.resize(n); FOR(i,0,n) p[i]=X[i]; FOR(i,0,n) y[i]=Y[i]; return solve(); } int updateX(int pos, int val) { p[pos]=val; return solve(); } int updateY(int pos, int val) { y[pos]=val; return solve(); } /* #include <stdio.h> #include <stdlib.h> static char _buffer[1024]; static int _currentChar = 0; static int _charsNumber = 0; static FILE *_inputFile, *_outputFile; static inline int _read() { if (_charsNumber < 0) { exit(1); } if (!_charsNumber || _currentChar == _charsNumber) { _charsNumber = (int)fread(_buffer, sizeof(_buffer[0]), sizeof(_buffer), _inputFile); _currentChar = 0; } if (_charsNumber <= 0) { return -1; } return _buffer[_currentChar++]; } static inline int _readInt() { int c, x, s; c = _read(); while (c <= 32) c = _read(); x = 0; s = 1; if (c == '-') { s = -1; c = _read(); } while (c > 32) { x *= 10; x += c - '0'; c = _read(); } if (s < 0) x = -x; return x; } int main() { int N;cin>>N; int X[N],Y[N]; FOR(i,0,N) cin>>X[i]; FOR(i,0,N) cin>>Y[i]; cout<<init(N,X,Y)<<'\n'; int M; cin>>M; for (int i = 0; i < M; i++) { int type,pos,val; cin>>type>>pos>>val; if (type == 1) { cout<<updateX(pos,val)<<'\n'; } else if (type == 2) { cout<<updateY(pos,val)<<'\n'; } } return 0; } */
#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...