[ create a new paste ] login | about

Link: http://codepad.org/IW7yRyML    [ raw code | fork ]

C++, pasted on Jun 20:
#include <iostream>
using namespace std;
int a[317*317], n, m, b[317], i;

int main()
{
   cin >> n;
   int q = 1e9;
   for(;i<n;++i)
   {
      cin>>a[i];
      q = min(q,a[i]);
      if((i+1)%317==0)
      {
         b[i/317]=q;
         q=1e9;
      }
   }
   if( q!=1e9 )
      b[n/317]=q;
   m = n/317;
   for(i=0;i<n;++i)
   {
      int j, p = i;
      for(j = m; j > i/317; --j)
         if( b[j] < a[i] )
            break;
      for(int k=max(i,j*317); k < min(n,(j+1)*317); ++k)
         if( a[k] < a[i] )
            p = k;
      cout << p-i-1 << ' ';
   }
   return 0;
}


Create a new paste based on this one


Comments: