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. unittest 单元测试框架

    引入 unittest 框架 相想使用unittest 框架,首先要引入unittest 包 import unittest class Baidu(unittest.TestCase): Baidu ...

  2. oracle查询当前会话数量

    SELECT a.inst_id,sid,username,event,sql_id,a.PROGRAM FROM gv$session a WHERE a.STATUS='ACTIVE' AND u ...

  3. Java编程之路相关书籍(三个维度)

    一.关于Java的技术学习.能够依照以下分三个维度进行学习 : (1)向下发展,也就是底层的方向 建议看<深入Java虚拟机>.<Java虚拟机规范>.<Thinking ...

  4. 2018年EI收录中文期刊目录【转】

    [转]2018年EI收录中文期刊目录 Elsevier官网于2018年1月1日更新了EI Compendex目录,共收录中文期刊158种,其中新增期刊5种. 序号 中文刊名 收录情况 1 声学学报 保 ...

  5. python selenium2示例 - 日志管理

    logger继承图 前言 在自动化测试实践过程中,必不可少的就是进行日志管理,方便调试和生产问题追踪,python提供了logging模块来进行日志的管理.下面我们就logging模块的学习和使用进行 ...

  6. 趣味编程:C#中Specification模式的实现(参考答案 - 下)

    一篇文章中我们利用C#语言的特性实现了一种轻量级的Specification模式,它的关键在于抛弃了具体的Specification类型,而是使用一个委托对象代替唯一关键的IsSatisfiedBy方 ...

  7. 我为什么要学习jquery

    因为jquery很强大,很少的代码实现更多的功能.

  8. 获取系统时间的DOS命令

    DOS C:\Users\yaozhendong>echo %date:~0,10% %time%2011/12/24 19:45:41.25 前段时间工作中需要对一个地址做定时PING操作,并 ...

  9. Largest Rectangle in a Histogram (最大子矩阵)

    hdu 1506 A histogram is a polygon composed of a sequence of rectangles aligned at a common base line ...

  10. sharding-jdbc从入门到出门(03)

    经过端午节这2天对 sharding-jdbc一直怀揣成梦想的去学习,还是有一些没有解决的问题: 上一张图: