#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<fstream>
#include<algorithm>
#define MAXN 105
using namespace std;
typedef struct{
int num[], a, b;
char str[];
void Switch(){
for(int i = ; i < ; i ++)
num[i] = str[i]-'';
}
}Gusse;
Gusse gg[MAXN];
int ans[], target[], flag, N;
bool Is_In_num(int i){
int num1[], num2[], cnt = ;
memset(num1, , sizeof(num1));
memset(num2, , sizeof(num2));
for(int j = ; j < ; j ++) num1[ans[j]]++;
for(int j = ; j < ; j ++) num2[gg[i].num[j]]++;
for(int j = ; j < ;j ++) if(num1[j] && num2[j]) cnt += min(num1[j], num2[j]);
return cnt == gg[i].a;
}
bool Is_Ok_num(int i){
int cnt = ;
for(int j = ; j < ; j ++)
if(ans[j] == gg[i].num[j]) cnt++;
return cnt == gg[i].b;
}
bool OK(){
for(int i = ; i < N; i ++)
if(!Is_In_num(i) || !Is_Ok_num(i)) return false;
return true;
}
void dfs(int cnt){
if(cnt == ){
if(OK()){
flag++;
for(int i = ; i < ; i ++) target[i] = ans[i];
}
return ;
}
for(int i = ; i < ; i ++){
if((cnt + i)){
ans[cnt] = i;
dfs(cnt+);
}
}
}
int main(){
freopen("in.c", "r", stdin);
while(~scanf("%d", &N) && N){
for(int i = ; i < N; i ++){
scanf("%s%d%d", gg[i].str, &gg[i].a, &gg[i].b);
gg[i].Switch();
}
flag = ;
dfs();
if(flag != ) printf("Not sure\n");
else{
for(int i = ; i < ; i ++) printf("%d", target[i]);
printf("%d\n", target[]);
}
}
return ;
}

HDOJ --1172的更多相关文章

  1. [HDOJ] 1172.猜数字

    Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每 猜一个数,计算机都会告诉玩家猜对几个数 ...

  2. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  4. HDOJ 1326. Box of Bricks 纯水题

    Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  5. HDOJ 1004 Let the Balloon Rise

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  6. hdoj 1385Minimum Transport Cost

    卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...

  7. HDOJ(2056)&HDOJ(1086)

    Rectangles    HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...

  8. 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ

    前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...

  9. 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design

    题意:有n个点,问其中某一对点的距离最小是多少 分析:分治法解决问题:先按照x坐标排序,求解(left, mid)和(mid+1, right)范围的最小值,然后类似区间合并,分离mid左右的点也求最 ...

随机推荐

  1. 暑假集训(1)第五弹 -----Rails(Uva514)

    PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只能建立起一条路面铁轨.而且,这导致这个火车站在同一个时刻只能一个轨道投入使用, ...

  2. 暑假集训(1)第四弹 -----Find a way(Hdu2612)

    Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Nin ...

  3. 九度OJ 1201 二叉排序树

    题目地址:http://ac.jobdu.com/problem.php?pid=1201 题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历. 输入: 输入第一行包括一个整数n( ...

  4. Ubuntu 之旅—— 调整扩展屏分辨率

    打开终端输入 xrandr 得到如下信息 Screen 0: minimum 320 x 200, current 2390 x 768, maximum 8192 x 8192 LVDS conne ...

  5. ubuntu基本使用

    sudo nautilus xxx指定目录去打开 这个命令就是以root权限打开一个窗口,来管理文件

  6. JS如果阻止事件冒泡和浏览器默认事件

    原地址:http://missra.com/article/web-57.html 嵌套的标签元素,如果父元素和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,下面介绍一下J ...

  7. linux 中 ‘|’的作用

    利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入.连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入 ...

  8. django查询常用操作符及models和admin的写法

    以Publisher.Author.Book的model为例子 #coding=utf-8 from django.db import models # Create your models here ...

  9. tpl demo

    using System; using System.Collections.Concurrent; using System.Threading; using System.Threading.Ta ...

  10. linux系统装windows时需要注意的问题

    (1)    利用windows安装光盘安装XP.WIN7系统时,sata接口的硬盘要将其设置为兼容模式或者IDE模式才能安装.我认为这些盗版光盘安装系统的软件并没有支持sata接口硬盘的驱动程序才导 ...