poj 1068 模擬

2015/1/25


水題


#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<climits>
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>

using namespace std;
typedef long long ll;  

#define mod 10007
#define lson pos<<1,l,mid
#define sc(n) scanf("%d",&n)
#define rson pos<<1|1,mid+1,r
#define pr(n) printf("%d\n",n)
#define met(n,m) memset(n, m, sizeof(n))
#define F(x,y,i) for(int i = x;i > y; i--)
#define f(x,y,i) for(int i = x;i < y; i++)
#define ff(x,y,i) for(int i = x;i <= y; i++)
#define FF(x,y,i) for(int i = x;i >= y; i--) 

const int N=100500;
const int inf = INT_MAX;

int Max(int a,int b)
{
	return a>b?a:b;
}

int Min(int a,int b)
{
	return  a<b?a:b;
}


int a[1005];
int s[1005];
int main()  
{  
    int n, m, tot, x;
    while(~scanf("%d",&tot))
    {
   		while(tot--)
	   {
   			scanf("%d",&n);
   			f(0,n,i)
   			{
			   	sc(a[i]);
			   }
			   
		   x = 0;
		   int cnt = 0;
		   
		   f(0,n,i)
		   {
   			   f(0,a[i]-x,j)
   			   {
   			   	s[cnt++] = 0;
   			   }
   			   x=a[i];
   			   s[cnt++] = 1;
   		   }
   		   
   		   x = 0;
   		   int ct  = 0;
   		   
   		   f(0,cnt,i)
   		   {
   		   	if(s[i])
   		   	{
   		   		x = 1;
   		   		int y = 1;
	   		   	FF(i-1,0,j)
	   		   	{
					 	y++;
	   		   		if(!s[j])
	   		   		{
		   		   		x--;
		   		   	}
		   		   	else 
			        {
						x++;
					}
					if(!x)
					{
						break;
					}
	   		   	}
	   		   	a[ct++] = y/2;
	   		   }
   		   }
   		   
   		   f(0,ct,i)
   		   {
   		   	printf("%d%c",a[i],i==ct-1?'\n':' ');
   		   }
   		   
   		}    
		    	
    }
    return 0;  
}  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章