提出 #47972996
ソースコード 拡げる
//Author : silenttkillerr
#include<vector>
#include<map>
#include<set>
#include<unordered_map>
#include<algorithm>
#include<iostream>
#include<math.h>
#include<string>
#include<bitset>
#include<stdio.h>
#include<utility>
#include<queue>
#include<stack>
#include<deque>
#include<iterator>
#include<list>
#include<iomanip>
#include<chrono>
#include<unordered_set>
#include<string>
#include<cmath>
#include<cstring>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define fast ios_base::sync_with_stdio(0),cin.tie(0)
#define ll long long
#define cout std::cout
#define cin std::cin
#define yes cout<<"YES"<<endl;
#define no cout<<"NO"<<endl;
#define syes cout<<"Yes"<<endl;
#define sno cout<<"No"<<endl;
#define pb push_back
#define sorta(vec) sort(vec.begin(),vec.end())
#define sortd(vec) sort(vec.begin(),vec.end(),greater<int>())
#define vll vector<vector<ll int>>
#define vl vector<ll>
#define nline "\n"
#define all(v) (v).begin(),(v).end()
#define pii pair<ll int,ll int>
#define piii pair<ll int,pair<ll int,ll int>>
typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>pbds; // find_by_order, order_of_key(0-indexed)
//less , less_equal , greater , greater_equal -> rule for insertion
#define start_execution auto start = std::chrono::high_resolution_clock::now();
#define stop_execution auto stop = std::chrono::high_resolution_clock::now();
#define execution_time auto duration = std::chrono::duration_cast<std::chrono::nanoseconds>(stop - start); cerr<<"Time taken : "<<((long double)duration.count())/((long double)1e9) <<"s"<<endl;
void entry_check(){cout<<"Entered"<<endl;}
void yn(bool res){if(res==true){yes;}else{no;}}
const ll mod=1000000007;
//const ll mod=998244353;
//ll int mod=1000000000000000000;
template<class T>
void print_v(vector<T>&vec)
{
for(int i=0;i<vec.size();i++)
{
cout<<vec[i]<<" ";
}
cout<<endl;
}
void debug(ll int n)
{
cout<<n<<endl;
}
void debug(int n)
{
cout<<n<<endl;
}
void debug(string n)
{
cout<<n<<endl;
}
void debug(vector<int>&vec)
{
for(int i=0;i<vec.size();i++)
{
cout<<"[ "<<i<<" "<<vec[i]<<" ]"<<endl;
}
}
void debug(vector<ll int>&vec)
{
for(int i=0;i<vec.size();i++)
{
cout<<"[ "<<i<<" "<<vec[i]<<" ]"<<endl;
}
}
void erase_pbds(pbds &st,ll int ele)
{
int rank = st.order_of_key(ele);
auto it= st.find_by_order(rank);
st.erase(it);
}
ll int inv(ll int r)
{
if(r==1) return 1;
return (mod-((mod/r)*inv(mod%r))%mod+mod)%mod;
}
ll mod_add(ll int a,ll int b){a=a%mod;b=b%mod;return (((a+b)%mod)+mod)% mod;}
ll mod_mul(ll int a,ll int b){a=a%mod;b=b%mod;return (((a*b)% mod)+mod)%mod;}
ll mod_sub(ll int a, ll int b){a=a%mod;b=b%mod;return (((a - b)%mod)+mod)%mod;}
ll mod_div(ll a,ll b){a=a%mod;b=b%mod;return (a*inv(b))%mod;}
ll int ceil_div(ll int a,ll int b){return (a+b-1)/b;}
ll int gcd(ll int a,ll int b)
{
if (!a)
{
return b;
}
return gcd(b%a,a);
}
ll int lcm(ll int a,ll int b)
{
ll int g=__gcd(a,b);
return (1LL*a*b)/g;
}
ll int pwr(ll int a,ll int b)
{
if(b==0)
{
return 1;
}
if(b%2==0)
{
ll int ans1=pwr(a,b/2);
ll int ans2=(ans1*ans1)%mod;
return ans2;
}
ll int ans1=pwr(a,b/2);
ll int ans2=(ans1*ans1)%mod;
ans2=(ans2*a)%mod;
return ans2;
}
class factorial
{
public:
vector<ll int>fact;
factorial(int n)
{
fact.resize(n+1,0);
fact[0]=1;
for(int i=1;i<=n;i++)
{
fact[i]=mod_mul(fact[i-1],i);
}
}
ll int ncr(int n,int r)
{
ll int a=fact[n];
ll int b=fact[r];
ll int c=fact[n-r];
c=mod_mul(c,b);
a=mod_div(a,c);
return a;
}
};
template<class ForwardIterator>
void read(ForwardIterator first,ForwardIterator last)
{
while (first != last)
{
cin >> (*first);
++first;
}
}
template<class T>
void read(vector<T> &v)
{
read(v.begin(), v.end());
}
template<class T>
void read1(vector<T>&v)
{
for(int i=1;i<v.size();i++)
{
cin>>v[i];
}
}
ll int polynomial_hash(string & s)
{
const int p=31;
const int m=1e9+9;
//const int m=1e16+7;
ll int hash_value = 0;
ll int p_pow=1;
for (char c:s)
{
hash_value=(hash_value+(c-'a'+1)*p_pow)%m;
p_pow=(p_pow*p)%m;
}
return hash_value;
}
bool cmp(vector<ll int>&v1,vector<ll int>&v2)
{
if(v1[1]<v2[1])
{
return true;
}
return false;
}
//code starts here
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
//freopen("error.txt","w",stderr);
#endif
fast;
start_execution
int tt=1;
//cin>>tt;
for(int tc=0;tc<tt;tc++)
{
int n,q;
cin>>n>>q;
vector<int>vec(n);
read(vec);
map<int,int>mp;
set<int>st;
map<int,int>next;
for(auto x:vec)
{
mp[x]++;
st.insert(x);
next[x]=x+1;
}
int mex=0;
while(mp[mex]>0)
{
mex++;
}
while(q--)
{
int i,x;
cin>>i>>x;
i--;
int v=vec[i];
if(mp[v]>1)
{
vec[i]=x;
mp[v]--;
if(mex!=x)
{
mp[x]++;
}
else
{
mp[x]++;
int start=mex;
while(mp[mex]>0)
{
if(next.find(mex)==next.end())
{
next[mex]=mex+1;
}
mex=next[mex];
}
if(mex>start)
{
next[start]=mex;
}
}
}
else
{
vec[i]=x;
if(mex<v)
{
mp[v]--;
mp[x]++;
int start=mex;
while(mp[mex]>0)
{
if(next.find(mex)==next.end())
{
next[mex]=mex+1;
}
mex=next[mex];
}
if(mex>start)
{
next[start]=mex;
}
}
else
{
//Now at v we will have problem
mp[v]--;
mp[x]++;
next[v-1]=v;
mex=v;
}
}
cout<<mex<<endl;
}
}
stop_execution
//execution_time
return 0;
}
提出情報
コンパイルエラー
Main.cpp: In function ‘void debug(std::vector<int>&)’:
Main.cpp:78:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
78 | for(int i=0;i<vec.size();i++)
| ~^~~~~~~~~~~
Main.cpp: In function ‘void debug(std::vector<long long int>&)’:
Main.cpp:85:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
85 | for(int i=0;i<vec.size();i++)
| ~^~~~~~~~~~~
Main.cpp: In function ‘int main()’:
Main.cpp:47:30: warning: variable ‘start’ set but not used [-Wunused-but-set-variable]
47 | #define start_execution auto start = std::chrono::high_resolution_clock::now();
| ^~~~~
Main.cpp:215:5: note: in expansion of macro ‘start_execution’
215 | start_execution
| ^~~~~~~~~~~~~~~
Main.cpp:48:29: warning: variable ‘stop’ set but not used [-Wunused-but-set-variable]
48 | #define stop_execution auto stop = std::chrono::high_resolution_clock::now();
| ^~~~
Main.cpp:306:5: note: in expansion of macro ‘stop_execution’
306 | stop_execution
| ^~~~~~~~~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
0 / 475 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample_01.txt |
| All |
hack_01.txt, hack_02.txt, hack_03.txt, hack_04.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| hack_01.txt |
AC |
571 ms |
32036 KiB |
| hack_02.txt |
AC |
617 ms |
32088 KiB |
| hack_03.txt |
AC |
645 ms |
36684 KiB |
| hack_04.txt |
AC |
667 ms |
36772 KiB |
| sample_01.txt |
AC |
1 ms |
3448 KiB |
| test_01.txt |
AC |
1 ms |
3608 KiB |
| test_02.txt |
AC |
1 ms |
3520 KiB |
| test_03.txt |
AC |
214 ms |
3856 KiB |
| test_04.txt |
AC |
228 ms |
3844 KiB |
| test_05.txt |
AC |
284 ms |
4180 KiB |
| test_06.txt |
AC |
643 ms |
16560 KiB |
| test_07.txt |
AC |
927 ms |
41432 KiB |
| test_08.txt |
AC |
234 ms |
3848 KiB |
| test_09.txt |
AC |
313 ms |
4584 KiB |
| test_10.txt |
AC |
754 ms |
25588 KiB |
| test_11.txt |
AC |
928 ms |
41468 KiB |
| test_12.txt |
AC |
576 ms |
36696 KiB |
| test_13.txt |
WA |
627 ms |
32236 KiB |
| test_14.txt |
WA |
781 ms |
32096 KiB |
| test_15.txt |
AC |
792 ms |
32136 KiB |
| test_16.txt |
AC |
754 ms |
41392 KiB |
| test_17.txt |
AC |
650 ms |
41468 KiB |
| test_18.txt |
AC |
839 ms |
32236 KiB |
| test_19.txt |
AC |
830 ms |
32080 KiB |
| test_20.txt |
AC |
866 ms |
41384 KiB |
| test_21.txt |
AC |
757 ms |
41404 KiB |
| test_22.txt |
WA |
1306 ms |
32152 KiB |
| test_23.txt |
WA |
1413 ms |
32164 KiB |
| test_24.txt |
WA |
1395 ms |
32012 KiB |
| test_25.txt |
WA |
1496 ms |
32148 KiB |
| test_26.txt |
AC |
225 ms |
3848 KiB |
| test_27.txt |
WA |
804 ms |
32168 KiB |
| test_28.txt |
AC |
723 ms |
28720 KiB |
| test_29.txt |
AC |
459 ms |
22632 KiB |
| test_30.txt |
AC |
886 ms |
50928 KiB |