Submission #989053

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
9890532024-05-27 11:08:53crafticatHorses (IOI15_horses)C++17
100 / 100
655 ms107564 KiB
#include <bits/stdc++.h>
using namespace std;
constexpr int MOD = 1e9 + 7;
using ll = __int128;
vector<int> x, y;
set<int> exists;
ll global = 1;
int n;
ll myPOW(ll a, ll b) {
if (b == 0) return 1;
ll v = myPOW(a, b / 2);
v *= v;
v %= MOD;
if (b % 2 == 1) v *= a;
v %= MOD;
return v;
}
ll inv(ll v) {
return myPOW(v, MOD - 2);
}
struct Segment {
Segment *left = nullptr, *right = nullptr;
int l, r, mid;
ll val = 1;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

horses.cpp: In constructor 'Segment::Segment(int, int)':
horses.cpp:31:24: warning: declaration of 'r' shadows a member of 'Segment' [-Wshadow]
   31 |     Segment(int l, int r) : l(l), r(r), mid((r + l) / 2) {
      |                    ~~~~^
horses.cpp:28:12: note: shadowed declaration is here
   28 |     int l, r, mid;
      |            ^
horses.cpp:31:17: warning: declaration of 'l' shadows a member of 'Segment' [-Wshadow]
   31 |     Segment(int l, int r) : l(l), r(r), mid((r + l) / 2) {
      |             ~~~~^
horses.cpp:28:9: note: shadowed declaration is here
   28 |     int l, r, mid;
      |         ^
horses.cpp: In constructor 'Segment::Segment(int, int)':
horses.cpp:31:24: warning: declaration of 'r' shadows a member of 'Segment' [-Wshadow]
   31 |     Segment(int l, int r) : l(l), r(r), mid((r + l) / 2) {
      |                    ~~~~^
horses.cpp:28:12: note: shadowed declaration is here
   28 |     int l, r, mid;
      |            ^
horses.cpp:31:17: warning: declaration of 'l' shadows a member of 'Segment' [-Wshadow]
   31 |     Segment(int l, int r) : l(l), r(r), mid((r + l) / 2) {
      |             ~~~~^
horses.cpp:28:9: note: shadowed declaration is here
   28 |     int l, r, mid;
      |         ^
horses.cpp: In constructor 'Segment::Segment(int, int)':
horses.cpp:31:24: warning: declaration of 'r' shadows a member of 'Segment' [-Wshadow]
   31 |     Segment(int l, int r) : l(l), r(r), mid((r + l) / 2) {
      |                    ~~~~^
horses.cpp:28:12: note: shadowed declaration is here
   28 |     int l, r, mid;
      |            ^
horses.cpp:31:17: warning: declaration of 'l' shadows a member of 'Segment' [-Wshadow]
   31 |     Segment(int l, int r) : l(l), r(r), mid((r + l) / 2) {
      |             ~~~~^
horses.cpp:28:9: note: shadowed declaration is here
   28 |     int l, r, mid;
      |         ^
horses.cpp: In member function 'int Segment::q(int, int)':
horses.cpp:39:38: warning: conversion from 'll' {aka '__int128'} to 'int' may change value [-Wconversion]
   39 |         if (a <= l && b >= r) return val;
      |                                      ^~~
horses.cpp: In function 'int solve()':
horses.cpp:89:25: warning: conversion from 'll' {aka '__int128'} to 'int' may change value [-Wconversion]
   89 |     return (ans * left) % 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...