Sicily 1431. Interesting Sequence(有趣的数列)

1431. Interesting Sequence(有趣的数列)

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB , Special Judge

Description

Philia这个孩子真是聪明绝顶,在其他伙伴只知道把一列数逐个加起来的和会越来越大的时候,她就知道了其实这个和也会变小的。因为她已经学会了负数啦!爱思考的Philia给自己提出了一个很有趣的问题:是否存在一个长度为n的整数数列,其任意连续p项之和为正数而任意连续q项之和为负数?Philia思考了一下,发现原来不是那么简单咧,于是她请教你,世界上最聪明的程序员。你思考了片刻,大悟:这不很简单吗?看我写个程序来搞定它!

Input

标准输入,输入数据第一行包含一个整数T,表示输入有T组数据,下面每行一组数据,由三个整数数n, p, q 描述,各数据意义如上述,其中1<=n<=1000000, 1<=p, q<=n.

Output

结果输出到标准设备。对应于每组输入数据,相应结果在同一行输出。如果这样的数列存在,则输出这个数列,要求每一项的绝对值小于10^9, 相邻两项间用一个空格隔开,行首行末无多余空格。如果有多个解,只要输出任意一个即可。如果这样的序列不存在,则输出”Impossible”.

Sample Input

2
6 5 3
4 2 4

Sample Output

-8 18 -12 -8 16 -11
Impossible

Problem Source

<Good Luck, Sysu Teams>,crystal

// Problem#: 1431
// Submission#: 3238446
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <stdio.h>
#include <queue>
using namespace std;
 
//sort记录s[i]的大小,
//sort[i]>sort[j]=>s[i]>s[j],
//sort[i]-sort[0]=s[i]-s[0]=s[i],
//a[i]=sort[i]-sort[i-1]。
int sort[1000001];
 
int main(){

 int t,n,p,q,m,i,j;
 queue<int> mq;
 scanf("%d",&t);

 while(t--){
  scanf("%d %d %d",&n,&p,&q);
  
  if(p+q<n+2){
   printf("Impossible\n");
   continue;
  }
  
  m=n;
  for(i=n-p+1;i<=q-1;i++)
   mq.push(i);
  
  while(!mq.empty()){ //拓扑排序
   i=mq.front();
   mq.pop();
   sort[i]=m--;
   if(i-p>=0)
    mq.push(i-p);
   
   else if(i+q<=n)
    mq.push(i+q);
   
  }
  
  if(m==-1){
   for(i=1;i<=n-1;i++)
   printf("%d ",sort[i]-sort[i-1]);
   printf("%d\n",sort[n]-sort[n-1]);
  }
  else
   printf("Impossible\n");
  
 }
 
 return 0;
}                                 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值