Submission #202503

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
2025032020-02-16 15:03:26KalamNekameleoni (COCI15_nekameleoni)C++11
140 / 140
1461 ms108808 KiB
// KALAM
# include<bits/stdc++.h>
# define lc (id << 1)
# define rc (lc ^ 1)
# define md ((l + r) >> 1)
using namespace std;
const int N = 100000 + 77 , K = 52;
int n , k , q , a[N] , P[K];
int L[N << 2][K] , R[N << 2][K] , dp[N << 2];
inline void Merge(int id) {
for(int i = 1;i <= k;++ i)
L[id][i] = min(L[lc][i] , L[rc][i]) , R[id][i] = max(R[lc][i] , R[rc][i]);
dp[id] = min(dp[lc] , dp[rc]);
for(int i = 1;i <= k;++ i)
if(L[id][i] < 1 || L[id][i] > n)
return ;
sort(P + 1 , P + 1 + k , [&](int x , int y) { return R[lc][x] < R[lc][y];} );
int nowr = -N;
for(int i = 1;i < k;++ i) {
nowr = max(nowr , L[rc][P[i]]);
if(L[rc][P[i]] < 1 || L[rc][P[i]] > n)
break ;
if(R[lc][P[i + 1]] > n || R[lc][P[i + 1]] < 1)
continue ;
dp[id] = min(dp[id] , nowr - R[lc][P[i + 1]] + 1);
}
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

nekameleoni.cpp: In function 'int main()':
nekameleoni.cpp:62:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d %d %d" , & n , & k , & q);
    ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nekameleoni.cpp:65:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d" , a + i);
       ~~~~~^~~~~~~~~~~~~~
nekameleoni.cpp:69:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d" , & tp);
       ~~~~~^~~~~~~~~~~~~
nekameleoni.cpp:73:48: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
          scanf("%d %d" , & x , & y) , a[x] = y , Update(x);
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
#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...
#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...