QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#723862 | #2942. 7 Segments You Say? | BackToSquare1 | AC ✓ | 1ms | 3832kb | C++20 | 3.3kb | 2024-11-08 01:43:42 | 2024-11-08 01:43:43 |
Judging History
answer
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;
// using namespace __gnu_pbds;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pl;
typedef pair<ld,ld> pd;
typedef vector<ll> vl;
// typedef tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
#define G(x) ll x; cin >> x;
#define F(i, l, r) for (ll i = l; i < (r); ++i)
#define all(a) begin(a), end(a)
#define K first
#define V second
#define OK(i,j) i >= 0 && i < n && j >= 0 && j < m
#define NN 2505
#define MM 5005
#define MOD 1000007
void solve() {
ll S;
cin >> S;
string s;
cin >> s;
while(s.length()%7 != 0) s = '0' + s;
if(s == "") return;
set<string> valid = {"1110111","0010010","1011101","1011011","0111010","1101011","1101111","1010010","1111111","1111011",
"1111110","0101111","1100101","0011111","1101101","1101100"};
ll k = s.length();
ll width = 3*S;
ll numSegs = k/7;
ll numChar = 1;
while(numChar < numSegs && width + 5*S < 80) {
width += 5*S;
numChar++;
}
ll numLen = (numSegs-1)/numChar + 1;
ll len = S*7*numLen + S*(numLen-1);
ll numLeft = numSegs - numChar*(numLen-1);
ll numLeftWidth = 5*S*(numLeft-1) + 3*S;
char ans[len][width];
for(ll i=0;i<len;i++) {
for(ll j=0;j<width;j++) ans[i][j] = ' ';
}
for(ll i=0;i<numSegs;i++) {
ll row = i/numChar;
ll col = i%numChar;
string t = s.substr(7*i,7);
reverse(t.begin(),t.end());
if(valid.count(t) == 0) continue;
if(t[0] == '1') {
for(ll j = 0;j < S; j++) {
for(ll k = 0; k<3*S;k++) ans[8*S*row+j][5*S*col+k] = 'X';
}
}
if(t[1] == '1') {
for(ll j = 0;j < 2*S; j++) {
for(ll k = 0; k<S;k++) ans[8*S*row+S+j][5*S*col+k] = 'X';
}
}
if(t[2] == '1') {
for(ll j = 0;j < 2*S; j++) {
for(ll k = 0; k<S;k++) ans[8*S*row+S+j][5*S*col+2*S+k] = 'X';
}
}
if(t[3] == '1') {
for(ll j = 0;j < S; j++) {
for(ll k = 0; k<3*S;k++) ans[8*S*row+3*S+j][5*S*col+k] = 'X';
}
}
if(t[4] == '1') {
for(ll j = 0;j < 2*S; j++) {
for(ll k = 0; k<S;k++) ans[8*S*row+4*S+j][5*S*col+k] = 'X';
}
}
if(t[5] == '1') {
for(ll j = 0;j < 2*S; j++) {
for(ll k = 0; k<S;k++) ans[8*S*row+4*S+j][5*S*col+2*S+k] = 'X';
}
}
if(t[6] == '1') {
for(ll j = 0;j < S; j++) {
for(ll k = 0; k<3*S;k++) ans[8*S*row+6*S+j][5*S*col+k] = 'X';
}
}
}
for(ll i=0;i<len-S*7;i++) {
if(i%(8*S) < 7*S) {
for(ll j=0;j<width;j++) cout << ans[i][j];
}
cout << '\n';
}
for(ll i=len-S*7;i<len;i++) {
for(ll j=0;j<numLeftWidth;j++) cout << ans[i][j];
if(i < len-1)cout << '\n';
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cout << fixed << setprecision(10);
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3592kb
input:
1 110111111011
output:
XXX XXX X X X X XXX XXX X X X X X X XXX
result:
ok 7 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 3828kb
input:
4 110111111011
output:
XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXX...
result:
ok 28 lines
Test #3:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
1 1110111010010010111011101101010111011010111111011010010111111111101111011111111110101010011111110010110110011011
output:
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XXX XXX XXX XXX XXX XXX XXX XXX XXX ...
result:
ok 7 lines
Test #4:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
1 111011101001001011101110110101011101101011111101101001011111111110111101111111111010101001111111001011011001101111101110100100101110111011010101110110101111110110100101111111111011110111111111101010100111111100101101100110111110111010010010111011101101
output:
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XXX XXX XXX XXX XXX XXX XXX XXX XXX ...
result:
ok 23 lines
Test #5:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
3 11101110100100101110111011010101110110101111110110100101111111111011110111111111101010100111111100101101100110111110111010010010111011101101010111011010111111011010010111111111101111011111111110101010011111110010110110011011
output:
XXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXX XXX XXX XXX XXX XXX XXX XXX XXX XXX ...
result:
ok 165 lines
Test #6:
score: 0
Accepted
time: 1ms
memory: 3684kb
input:
8 11101110100100101110111011010101110110101111110110100101111111111011110111111111101010100111111100101101100110111110111010010010111011101101010111011010111111011010010111111111101111011111111110101010011111110010110110011011
output:
XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...
result:
ok 1016 lines
Test #7:
score: 0
Accepted
time: 0ms
memory: 3832kb
input:
1 1111111
output:
XXX X X X X XXX X X X X XXX
result:
ok 7 lines
Test #8:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
1 0101011
output:
result:
ok 7 lines
Test #9:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
1 100100010010111010111101111010101111110111101111001111001111110011011
output:
XXX XXX XXX XXX XXX XXX XXX X X X X X X X X X X X X X X X X X X X X X X XXX XXX XXX XXX XXX XXX X X X X X X X X X X X X X X X X X X X X ...
result:
ok 7 lines
Test #10:
score: 0
Accepted
time: 1ms
memory: 3620kb
input:
8 100100010010111010111101111010101111110111101111001111001111110011011
output:
XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...
result:
ok 312 lines
Test #11:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
1 111011101001001011101110110101011101101011111101101001011111111110111101111111111010101001111111001011011001101111101110100100101110111011010101110110101111110110100101111111111011110111111111101010100111111100101101100110111110111010010010111011101101
output:
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XXX XXX XXX XXX XXX XXX XXX XXX XXX ...
result:
ok 23 lines