Codeforces--400A--Inna and Choose Options(模拟水题)
Inna and Choose Options
Crawling in process...
Crawling failed
Time Limit:1000MS
Memory Limit:262144KB
64bit IO Format:%I64d & %I64u
Description
There always is something to choose from! And now, instead of "Noughts and Crosses", Inna choose a very unusual upgrade of this game. The rules of the game are given below:
There is one person playing the game. Before the beginning of the game he puts 12 cards in a row on the table. Each card contains a character: "X" or "O". Then the player chooses
two positive integers a and
b(a·b = 12), after that he makes a table of size
a × b from the cards he put on the table as follows: the first
b cards form the first row of the table, the second
b cards form the second row of the table and so on, the last
b cards form the last (number
a) row of the table. The player wins if some column of the table contain characters "X" on all cards. Otherwise, the player loses.
Inna has already put 12 cards on the table in a row. But unfortunately, she doesn't know what numbers
a and b to choose. Help her win the game: print to her all the possible ways of numbers
a, b that she can choose and win.
Input
The first line of the input contains integer t(1 ≤ t ≤ 100). This value shows the number of sets of test data in the input. Next follows the description of each of the
t tests on a separate line.
The description of each test is a string consisting of 12 characters, each character is either "X", or "O". The
i-th character of the string shows the character that is written on the
i-th card from the start.
Output
For each test, print the answer to the test on a single line. The first number in the line must represent the number of distinct ways to choose the pair
a, b. Next, print on this line the pairs in the format
axb. Print the pairs in the order of increasing first parameter (a). Separate the pairs in the line by
whitespaces.
Sample Input
4
OXXXOXOOXOOX
OXOXOXOXOXOX
XXXXXXXXXXXX
OOOOOOOOOOOO
3 1x12 2x6 4x3
4 1x12 2x6 3x4 6x2
6 1x12 2x6 3x4 4x3 6x2 12x1
0
将12张卡片分成矩阵,如果矩阵中有一列全都是X就输出这种排列方式,输出方式看样例,这里要注意输出的是x是小写的,还有对应关系,因为这还wa了两次
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
char str[15];
int vis[15];
memset(vis,0,sizeof(vis));
memset(str,'\0',sizeof(str));
cin>>str;
int ans=0,cnt=0;
for(int i=0;i<12;i++)
if(str[i]=='X')
cnt++;
if(cnt==0)
cout<<0<<endl;
else
{
vis[0]=1;
ans++; int f=false;
for(int i=0;i<6;i++)//2*6
if(str[i]=='X'&&str[i+6]=='X')
f=true;
if(f)
vis[1]=1,ans++; f=false;
for(int i=0;i<3;i++)//4*3
if(str[i]=='X'&&str[i+3]=='X'&&str[i+6]=='X'&&str[i+9]=='X')
f=true;
if(f)
vis[2]=1,ans++; f=false;
for(int i=0;i<4;i++)//3*4
if(str[i]=='X'&&str[i+4]=='X'&&str[i+8]=='X')
f=true;
if(f)
vis[3]=1,ans++; f=false;
for(int i=0;i<2;i++)//6*2
if(str[i]=='X'&&str[i+2]=='X'&&str[i+4]=='X'&&str[i+6]=='X'&&str[i+8]=='X'&&str[i+10]=='X')
f=true;
if(f)
vis[4]=1,ans++;
if(cnt==12) ans++;
printf("%d",ans);
if(vis[0]) printf(" 1x12");
if(vis[1]) printf(" 2x6");
if(vis[3]) printf(" 3x4");
if(vis[2]) printf(" 4x3");
if(vis[4]) printf(" 6x2");
if(cnt==12) printf(" 12x1");
printf("\n");
}
}
return 0;
}
Codeforces--400A--Inna and Choose Options(模拟水题)的更多相关文章
- CodeForces 400A Inna and Choose Options
Inna and Choose Options Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on Cod ...
- Codeforces Round #234 (Div. 2) A. Inna and Choose Options 模拟题
A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ...
- CodeForces 689A Mike and Cellphone (模拟+水题)
Mike and Cellphone 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/E Description While sw ...
- Codeforces Round #234 (Div. 2) :A. Inna and Choose Options
A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ...
- Codeforces Round #234 (Div. 2) A. Inna and Choose Options
A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- POJ 2014:Flow Layout 模拟水题
Flow Layout Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3091 Accepted: 2148 Descr ...
- codeforces Gym 100187L L. Ministry of Truth 水题
L. Ministry of Truth Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/p ...
- Codeforces Round #185 (Div. 2) B. Archer 水题
B. Archer Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/312/problem/B D ...
随机推荐
- Vue-prop
HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab- ...
- CodeFrist基础_Fluent Api
一丶首先新建两个实体类 public class Student { public int StudentKey { get; set; } public string StudentName { g ...
- 动态生成java、动态编译、动态加载
我曾经见过一个“规则引擎”,是在应用系统web界面直接编写java代码,然后保存后,规则即生效,我一直很是奇怪,这是如何实现的呢?实际这就好像jsp,被中间件动态的编译成java文件,有被动态的编译成 ...
- Codeforces Round #470 Div. 2题解
A. Protect Sheep time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- 手写redis的docker文件,通过docker-compose配置redis
在前面一遍随笔,配置的是mysql主从的docker-compose配置.今天我们来学习配置编排容器redis. 准备环境: docker 18.06.1-ce docker-compose 1.23 ...
- Leetcode题目practice
目录 Leetcode题目解答 1. 删除最外层的括号 2. 两数之和 3. 宝石与石头 4. 移除元素 5.删除排序数组中的重复项 6.寻找两个有序数组的中位数 7.盛最多水的容器 8.存在重复元素 ...
- 手动模拟一个类似jquery的ajax请求
var $ = { parms:function(obj){ var str = ''; for(var k in obj){ str +=k+'='+obj[k]+'&'; } str = ...
- 洛谷 2344 奶牛抗议 Generic Cow Protests, 2011 Feb
[题解] 我们可以轻松想到朴素的状态转移方程,但直接这样做是n^2的.所以我们考虑采用树状数组优化.写法跟求逆序对很相似,即对前缀和离散化之后开一个权值树状数组,每次f[i]+=query(sum[i ...
- ansible roles例子
#理解 changed_when failed_when become become_user ansible_become ansible_become_user static #检查group_v ...
- [luoguP1111] 修复公路(并查集)
传送门 呵呵的最小生成树 ——代码 #include <cstdio> #include <iostream> #include <algorithm> #defi ...