QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#723862#2942. 7 Segments You Say?BackToSquare1AC ✓1ms3832kbC++203.3kb2024-11-08 01:43:422024-11-08 01:43:43

Judging History

This is the latest submission verdict.

  • [2024-11-08 01:43:43]
  • Judged
  • Verdict: AC
  • Time: 1ms
  • Memory: 3832kb
  • [2024-11-08 01:43:42]
  • Submitted

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