Submission #987573

# Submission time Handle Problem Language Result Execution time Memory
987573 2024-05-23T05:19:09 Z modwwe Stone Arranging 2 (JOI23_ho_t1) C++17
100 / 100
250 ms 147900 KB
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,sse,sse2")
#include<bits/stdc++.h>
#define int long long
//#define ll long long
#define down cout<<'\n';
#define NHP     ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
#define modwwe  int t;cin>>t; while(t--)
#define bit(i,j) (i>>j&1)
#define sobit(a) __builtin_popcountll(a)
#define task "test"
#define fin(x) freopen(x".inp","r",stdin)
#define fou(x) freopen(x".out","w",stdout)
#define pb push_back
#define checktime   cerr << (double)clock() / CLOCKS_PER_SEC * 1000  << " ms";
using namespace std;
void ngha();
const int mod2=1e9+7;
const int  mod1=998244353;
struct ib
{
    int a;
    int b;
};
struct icd
{
    int a,b;
};
struct ic
{
    int a,b,c;
};
struct id
{
    int a,b,c,d;
};
struct ie
{
    int a,b,c, d,e;

};
int n,m,s1,s2,s4,s3,sf,k,r,mid,s5,s6,mx,s7,s8,s9,mx2,res,dem2=0,dem=0,l;
int  i,s10,s12;
int el=29;
main()
{
//#ifndef ONLINE_JUDGE
    /// fin(task),fou(task);
//#endif
    NHP
//modwwe
    //  cin>>res;
    ngha();

}
stack<int> s[200001];
int a[200001];
int t[800001];
void build(int node,int l,int r)
{ t[node]=-1;
     if(l==r)
     {
         t[node]=a[l];
         return;
     }
     int mid=l+r>>1;
      build(node<<1,l,mid);
      build(node<<1|1,mid+1,r);
}
void ff(int x)
{
     for(int i=x*2;i<=x*2+1;i++)
     {
         t[i]=t[x];
     }
     t[x]=-1;
}
void upd(int node,int l,int r,int l1,int r1,int c)
{
     if(l>r1||r<l1) return;
      if(l>=l1&&r<=r1)
      {
          t[node]=c;
           return;
      }
      if(t[node]!=-1) ff(node);
      int mid=l+r>>1;
      upd(node<<1,l,mid,l1,r1,c);
      upd(node<<1|1,mid+1,r,l1,r1,c);
}
int get(int node,int l,int r,int l1,int r1)
 {
     if(l>r1||r<l1) return -1;
      if(l>=l1&&r<=r1) return t[node];
      int mid=l+r>>1;
      if(t[node]!=-1)ff(node);
       return max(get(node<<1,l,mid,l1,r1),get(node<<1|1,mid+1,r,l1,r1));
 }
vector<int> v;
void ngha()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
         cin>>a[i];
         v.pb(a[i]);
    }
    sort(v.begin(),v.end());
     for(int i=1;i<=n;i++) a[i]=lower_bound(v.begin(),v.end(),a[i])-v.begin();
build(1,1,n);
     for(int i=1;i<=n;i++)
     {
         while(s[a[i]].size()&&get(1,1,n,s[a[i]].top(),s[a[i]].top())!=a[i])
         {
              s[a[i]].pop();
         }
         if(s[a[i]].size()==0) {         s[a[i]].push(i);
  continue;}
        s2=s[a[i]].top();
         upd(1,1,n,s2,i,a[i]);
             s[a[i]].push(i);

     }
     for(int i=1;i<=n;i++)
        cout<<v[get(1,1,n,i,i)]<<"\n";
    }

Compilation message

Main.cpp:45:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   45 | main()
      | ^~~~
Main.cpp: In function 'void build(long long int, long long int, long long int)':
Main.cpp:66:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   66 |      int mid=l+r>>1;
      |              ~^~
Main.cpp: In function 'void upd(long long int, long long int, long long int, long long int, long long int, long long int)':
Main.cpp:87:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   87 |       int mid=l+r>>1;
      |               ~^~
Main.cpp: In function 'long long int get(long long int, long long int, long long int, long long int, long long int)':
Main.cpp:95:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   95 |       int mid=l+r>>1;
      |               ~^~
# Verdict Execution time Memory Grader output
1 Correct 74 ms 134872 KB Output is correct
2 Correct 75 ms 134868 KB Output is correct
3 Correct 86 ms 136364 KB Output is correct
4 Correct 75 ms 136368 KB Output is correct
5 Correct 87 ms 136540 KB Output is correct
6 Correct 110 ms 136824 KB Output is correct
7 Correct 76 ms 136528 KB Output is correct
8 Correct 84 ms 136532 KB Output is correct
9 Correct 75 ms 136528 KB Output is correct
10 Correct 101 ms 136688 KB Output is correct
11 Correct 94 ms 136524 KB Output is correct
12 Correct 96 ms 136536 KB Output is correct
13 Correct 95 ms 136676 KB Output is correct
14 Correct 98 ms 136788 KB Output is correct
15 Correct 94 ms 136640 KB Output is correct
16 Correct 96 ms 136532 KB Output is correct
17 Correct 75 ms 136528 KB Output is correct
18 Correct 87 ms 136532 KB Output is correct
19 Correct 96 ms 136596 KB Output is correct
20 Correct 82 ms 136672 KB Output is correct
21 Correct 82 ms 136532 KB Output is correct
22 Correct 87 ms 136532 KB Output is correct
23 Correct 96 ms 136528 KB Output is correct
24 Correct 106 ms 136516 KB Output is correct
25 Correct 94 ms 136660 KB Output is correct
26 Correct 100 ms 137044 KB Output is correct
27 Correct 95 ms 136528 KB Output is correct
28 Correct 97 ms 136532 KB Output is correct
29 Correct 84 ms 136560 KB Output is correct
30 Correct 77 ms 136532 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 73 ms 136528 KB Output is correct
2 Correct 87 ms 136468 KB Output is correct
3 Correct 83 ms 136564 KB Output is correct
4 Correct 84 ms 136532 KB Output is correct
5 Correct 107 ms 136548 KB Output is correct
6 Correct 76 ms 136364 KB Output is correct
7 Correct 74 ms 136532 KB Output is correct
8 Correct 89 ms 136588 KB Output is correct
9 Correct 101 ms 136776 KB Output is correct
10 Correct 81 ms 136680 KB Output is correct
11 Correct 97 ms 136680 KB Output is correct
12 Correct 95 ms 136532 KB Output is correct
13 Correct 94 ms 136924 KB Output is correct
14 Correct 85 ms 136504 KB Output is correct
15 Correct 96 ms 136532 KB Output is correct
16 Correct 100 ms 136680 KB Output is correct
17 Correct 189 ms 144576 KB Output is correct
18 Correct 174 ms 144576 KB Output is correct
19 Correct 178 ms 143808 KB Output is correct
20 Correct 192 ms 144064 KB Output is correct
21 Correct 179 ms 143700 KB Output is correct
22 Correct 184 ms 143808 KB Output is correct
23 Correct 195 ms 144260 KB Output is correct
24 Correct 185 ms 143856 KB Output is correct
25 Correct 194 ms 143860 KB Output is correct
26 Correct 191 ms 143740 KB Output is correct
27 Correct 185 ms 143824 KB Output is correct
28 Correct 227 ms 144000 KB Output is correct
29 Correct 182 ms 143940 KB Output is correct
30 Correct 190 ms 144576 KB Output is correct
31 Correct 191 ms 144576 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 74 ms 134872 KB Output is correct
2 Correct 75 ms 134868 KB Output is correct
3 Correct 86 ms 136364 KB Output is correct
4 Correct 75 ms 136368 KB Output is correct
5 Correct 87 ms 136540 KB Output is correct
6 Correct 110 ms 136824 KB Output is correct
7 Correct 76 ms 136528 KB Output is correct
8 Correct 84 ms 136532 KB Output is correct
9 Correct 75 ms 136528 KB Output is correct
10 Correct 101 ms 136688 KB Output is correct
11 Correct 94 ms 136524 KB Output is correct
12 Correct 96 ms 136536 KB Output is correct
13 Correct 95 ms 136676 KB Output is correct
14 Correct 98 ms 136788 KB Output is correct
15 Correct 94 ms 136640 KB Output is correct
16 Correct 96 ms 136532 KB Output is correct
17 Correct 75 ms 136528 KB Output is correct
18 Correct 87 ms 136532 KB Output is correct
19 Correct 96 ms 136596 KB Output is correct
20 Correct 82 ms 136672 KB Output is correct
21 Correct 82 ms 136532 KB Output is correct
22 Correct 87 ms 136532 KB Output is correct
23 Correct 96 ms 136528 KB Output is correct
24 Correct 106 ms 136516 KB Output is correct
25 Correct 94 ms 136660 KB Output is correct
26 Correct 100 ms 137044 KB Output is correct
27 Correct 95 ms 136528 KB Output is correct
28 Correct 97 ms 136532 KB Output is correct
29 Correct 84 ms 136560 KB Output is correct
30 Correct 77 ms 136532 KB Output is correct
31 Correct 73 ms 136528 KB Output is correct
32 Correct 87 ms 136468 KB Output is correct
33 Correct 83 ms 136564 KB Output is correct
34 Correct 84 ms 136532 KB Output is correct
35 Correct 107 ms 136548 KB Output is correct
36 Correct 76 ms 136364 KB Output is correct
37 Correct 74 ms 136532 KB Output is correct
38 Correct 89 ms 136588 KB Output is correct
39 Correct 101 ms 136776 KB Output is correct
40 Correct 81 ms 136680 KB Output is correct
41 Correct 97 ms 136680 KB Output is correct
42 Correct 95 ms 136532 KB Output is correct
43 Correct 94 ms 136924 KB Output is correct
44 Correct 85 ms 136504 KB Output is correct
45 Correct 96 ms 136532 KB Output is correct
46 Correct 100 ms 136680 KB Output is correct
47 Correct 189 ms 144576 KB Output is correct
48 Correct 174 ms 144576 KB Output is correct
49 Correct 178 ms 143808 KB Output is correct
50 Correct 192 ms 144064 KB Output is correct
51 Correct 179 ms 143700 KB Output is correct
52 Correct 184 ms 143808 KB Output is correct
53 Correct 195 ms 144260 KB Output is correct
54 Correct 185 ms 143856 KB Output is correct
55 Correct 194 ms 143860 KB Output is correct
56 Correct 191 ms 143740 KB Output is correct
57 Correct 185 ms 143824 KB Output is correct
58 Correct 227 ms 144000 KB Output is correct
59 Correct 182 ms 143940 KB Output is correct
60 Correct 190 ms 144576 KB Output is correct
61 Correct 191 ms 144576 KB Output is correct
62 Correct 200 ms 147900 KB Output is correct
63 Correct 204 ms 146296 KB Output is correct
64 Correct 181 ms 146376 KB Output is correct
65 Correct 208 ms 146612 KB Output is correct
66 Correct 207 ms 146624 KB Output is correct
67 Correct 196 ms 146880 KB Output is correct
68 Correct 200 ms 147132 KB Output is correct
69 Correct 203 ms 146704 KB Output is correct
70 Correct 206 ms 146804 KB Output is correct
71 Correct 198 ms 146776 KB Output is correct
72 Correct 193 ms 146620 KB Output is correct
73 Correct 208 ms 146112 KB Output is correct
74 Correct 250 ms 146392 KB Output is correct
75 Correct 194 ms 146272 KB Output is correct
76 Correct 207 ms 146600 KB Output is correct
77 Correct 194 ms 146140 KB Output is correct
78 Correct 196 ms 146380 KB Output is correct