http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/C
C - 学

Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Submit Status

Description

Ray又对数字的列产生了兴趣:
现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。
 

Input

每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。
 

Output

对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。
每组输出数据间空一行,最后一组数据后面没有空行。
 

Sample Input

1 2 3 4
1 1 2 3
0 1 2 3
0 0 0 0
 

Sample Output

1234 1243 1324 1342 1423 1432
2134 2143 2314 2341 2413 2431
3124 3142 3214 3241 3412 3421
4123 4132 4213 4231 4312 4321
 
1123 1132 1213 1231 1312 1321
2113 2131 2311
3112 3121 3211
 
1023 1032 1203 1230 1302 1320
2013 2031 2103 2130 2301 2310
3012 3021 3102 3120 3201 3210
在这里我想提一下Presentation Error是格式错误,其实离正确答案很近了,也许就差一个回车、tab或空格之类的这时候你就要检查你的程序的输出和题上的要求是否一致
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
#define Swap(a, b)(t=a, a=b, b=t)
#define N 26
int origin[4], later[N], m, q[5][30], a, b, c, d, ff=0;
void perm(int s, int e);
void print();
int main()
{
int i, j, t, f=0;
while(1)
{
a=0;b=0;c=0;d=0;m=0; for(i=0; i<4; i++)
scanf("%d", &origin[i]); if(origin[0]==0&&origin[1]==0&&origin[2]==0&&origin[3]==0)
break;
if(f==1)
printf("\n");
else
f=1;//我就是吧上面那个和这个弄反了才导致错了 for(i=0; i<3; i++)
for(j=i+1; j<4; j++)
{
if(origin[i]>origin[j])
Swap(origin[i],origin[j]);
} later[m++]=origin[0];
for(i=1; i<4; i++)
{
if(origin[i]!=origin[i-1])
later[m++]=origin[i];
}
if(later[0]==0)
ff=1;
perm(0, 3);
print();
}
}
void perm(int s, int e)
{
int i, t, x, flag;
if(s==e)
{
x=0;
if(origin[0]!=0)
{
for(i=0; i<=e; i++)
x=x*10+origin[i];
for(i=0; i<m; i++)
if(origin[0]==later[i])
flag=i;
switch (flag)
{
case 0: q[0][a++]=x; break;
case 1: q[1][b++]=x; break;
case 2: q[2][c++]=x; break;
case 3: q[3][d++]=x; break;
}
} return;
}
for(i=s; i<=e; i++)
{
Swap(origin[i], origin[s]);
perm(s+1, e);
Swap(origin[i], origin[s]);
}
}
void print()
{
int i, j, k, l, t;
for(j=0; j<m; j++)
{
switch(j)
{
case 0: k=a; break;
case 1: k=b; break;
case 2: k=c; break;
case 3: k=d; break;
}
for(i=0; i<k-1; i++)
for(l=i+1; l<k; l++)
if(q[j][i]>q[j][l])
Swap(q[j][i],q[j][l]);
}
for(j=0; j<m; j++)
{
if(ff==1)
{
j++;
ff=0;
}
switch(j)
{
case 0: k=a; break;
case 1: k=b; break;
case 2: k=c; break;
case 3: k=d; break;
}
printf("%d", q[j][0]);
for(i=1; i<k; i++)
{
if(q[j][i]!=q[j][i-1])
printf(" %d", q[j][i]);
}
printf("\n");
}
}

暑假集训第一周比赛C题的更多相关文章

  1. 暑假集训第一周比赛G题

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/G G - 向 Crawling in process... C ...

  2. STL 入门 (17 暑假集训第一周)

    快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...

  3. AYIT-2020 609暑假集训第一周周赛题 A - A计划

    可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚,告招天下 ...

  4. HUAS 2018暑假第一周比赛-题解

    小朋友们有问题评论区 :) B. 子串计算 难度系数 : ☆ Main idea : 模拟 暴力 按照题目的要求一步一步来就行了 之所以可行的原因是从左往右扫,如果扫到一个子串,把它删除掉之后,假设当 ...

  5. (未完成)catalyst-system WriteUp(2019暑假CTF第一周reverse)

    目录 预备学习--Linux实践:ELF文件格式分析 一.概述 二.分析ELF文件头(ELF header) 三.通过文件头找到section header table,理解其内容 四.通过secti ...

  6. CodeForces 478B 第六周比赛B题

    B - B Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Descriptio ...

  7. LightOJ 1317 第六周比赛A题

    A - A Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu   Description Y ...

  8. HUAS 2017暑假第六周比赛-题解

    A.Parenthesis 括号匹配的问题有一种经典的做法. 将左括号看成1,右括号看成-1,做一遍前缀和sum. 括号序列是合法的当且仅当\(sum[n]=Min(sum[1],sum[2].... ...

  9. 欢迎来到地狱 WriteUp(2019暑假CTF第一周misc)

    目录 0707,0708,0709 题目地址:欢迎来到地狱 1.地狱伊始.jpg 1.5地狱之声.wav 2.第二层地狱.docx 3.快到终点了.zip 参考 0707,0708,0709 题目地址 ...

随机推荐

  1. 每日一招:如何才能在A股持续盈利?

    证券市场介入门槛低,是众多普通投资者希望实现自己的“中国梦”的首选场所,无论牛市熊市,源源不断的参与者前赴后继.在沪深A股这样一个大众市场,每年都在上演着七亏两平一赚的悲喜剧,赚钱的永远是少数人,但众 ...

  2. tornado 初学

    tornado第一个例子 import tornado.ioloopimport tornado.web class MainHandler(tornado.web.RequestHandler): ...

  3. Git--代码托管/协同开发

    Git--代码托管 我爱写代码,公司写,家里写,如果每天来回带一个U盘拷贝着实麻烦,Git有没有类似于云盘似得东西可以进行数据同步呢?答案肯定是有. GitHub,一个基于Git实现的代码托管的平台, ...

  4. opencv--python--anaconda----contrib 安装

    https://pypi.python.org/pypi/opencv-python/3.4.0.12 https://pypi.python.org/pypi?%3Aaction=search&am ...

  5. Unity动态字体在手机上出现字体丢失问题解决

    在我们游戏的开发过程中,在部分手机上运行游戏的时候,出现了字体丢失的问题,出问题的手机似乎用的都是高通芯片. 使用的unity是4.2.0版本,ngui是3.4.9版本. 在unity的论坛及unit ...

  6. mapreduce学习资料

    http://blog.csdn.net/tianjun2012/article/category/6794531 http://blog.csdn.net/tianjun2012/article/d ...

  7. MSP430G2553电子时钟实验

    用msp430g2553控制1602液晶显示时间,并能够通过按键设置时间.我做了正计时和倒计时两种模式 /*********************************************** ...

  8. Carthage:去中心化的Cocoa依赖管理器

    Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...

  9. KiB、MiB与KB、MB的区别

    原来没太注意MB与MiB的区别,甚至没太关注还有MiB这等单位,今天认真了一下,发现两者还是有区别的,具体的差别是MB等单位以10为底数的指数,MiB是以2为底数的指数,如:1KB=10^3=1000 ...

  10. hdu 5285 wyh2000 and pupil(二染色)

    第一次用vector解得题.值得纪念,这道题是二染色问题,我用bfs解得.就是染色,推断,计数问题,其 实挺简单的,就是得判一下特殊情况,当n<2的时候就不能有解,由于题目要求每一个组至少有一个 ...