The difference between VC++ and g++
Solved the problem using segment tree.
Im using VC++ 12 and it's giving the correct answer for the sample.
Still while sending (VC++ 2010) im getting WA 1. Changing it to G++ C++ 11 gives AC. What's the difference and why am i getting WA 1 when i choose VC++?
Code:
#include <iostream>
#include <vector>
using namespace std;
const int MAXN=100000;
pair<int, int> t[4*MAXN];
int z=1;
void build_tree(int v, int tl, int tr)
{
if (tl==tr)
{
t[v]=make_pair(1,z++);
return;
}
int tm=(tl+tr)/2;
build_tree(2*v, tl, tm); build_tree(2*v+1, tm+1, tr);
t[v].first=t[2*v].first+t[2*v+1].first;
t[v].second=-1;
}
int req(int v, int tl, int tr, int n)
{
if (tl==tr)
{
--t[v].first;
return t[v].second;
}
int tm=(tl+tr)/2;
t[v].first--;
if (t[2*v].first>=n)
req(2*v, tl, tm, n);
else
req(2*v+1, tm+1,tr,n-t[2*v].first);
}
int main()
{
int n, k; cin>>n>>k;
build_tree(1,1,100000);
int cur=k;
for (int i=0; i<n; ++i)
{
int h=req(1,1,100000, cur);
cout<<h<<" ";
if (i==n-1)
break;
cur=(cur-1+k)%(n-1-i);
if (cur==0)
cur+=n-1-i;
}
}
Edited by author 10.03.2013 07:20
Re: The difference between VC++ and g++
Послано
D4nick 21 май 2023 15:07
Not sure, but it could be because of this t[4*MAXN] instead of t[400000]