제출 #160265

#제출 시각UTC-0아이디문제언어결과실행 시간메모리
1602652019-10-26 15:32:53bortoz말 (IOI15_horses)C++17
100 / 100
383 ms31864 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi first
#define se second
constexpr int MAXN = 1 << 19;
constexpr int MOD = 1e9 + 7;
pair<int, bool> segX[2 * MAXN];
int segM[2 * MAXN];
int Y[MAXN];
pair<int, bool> joinX(pair<int, bool>& a, pair<int, bool>& b) {
ll r = 1ll * a.fi * b.fi;
bool o = (r >= MOD) || a.se || b.se;
return make_pair(r % MOD, o);
}
pair<int, bool> queryX(int l, int r) {
pair<int, bool> ans{1, false};
for (l += MAXN, r += MAXN; l < r; l /= 2, r /= 2) {
if (l & 1) ans = joinX(ans, segX[l++]);
if (r & 1) ans = joinX(ans, segX[--r]);
}
return ans;
}
int joinM(int a, int b) {
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:46:54: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return 1ll * queryX(0, segM[1] + 1).fi * Y[segM[1]] % MOD;
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:54:54: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return 1ll * queryX(0, segM[1] + 1).fi * Y[segM[1]] % MOD;
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:62:54: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return 1ll * queryX(0, segM[1] + 1).fi * Y[segM[1]] % MOD;
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
#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...