Submission #991264

# Submission time Handle Problem Language Result Execution time Memory
991264 2024-06-01T16:52:53 Z TgX_2 Bitaro the Brave (JOI19_ho_t1) C++17
100 / 100
299 ms 221120 KB
/*-----------------------------
        Author : TgX.2
       10Ti - K28 - CHV
-----------------------------*/

#include <bits/stdc++.h>

#define FOR(i,a,b) for(int i=(a), _b=(b);i<=_b;++i)
#define FORD(i,a,b) for(int i=(a), _b=(b);i>=_b;--i)
#define FORC(i,a,b,c) for(int i=(a), _b=(b), _c=(c);i<=_b;i+=_c)
#define FORSq(i,a,b) for(int i=(a), _b=(b);i*i<=_b;++i)
#define FORSt(i,s) for(int i=0, _s=(int)(s.size());i<_s;++i)

#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define pp pop_back()
#define eb emplace_back
#define ers erase
#define ins insert
#define emp empty()
#define rvs reverse

#define BIT(x,i) (((x)>>(i))&1)
#define MASK(i) (1LL<<(i))
#define CNTBIT(x) __builtin_popcountll(x)
#define ODDBIT(x) __builtin_parityll(x)
#define FIRSTBIT(x) __builtin_ctzll(x)

#define len(x) (int)((x).size())
#define all(x) (x).begin(), (x).end()
#define alln(x,n) (x)+1, (x)+1+(n)

#define _ <<" "<<
#define __ << "\n"
#define ___ << " "
#define ____ << "\t"

#define file "temp"
#define ______________TgX______________ main()
#define int long long
#define intmax 1e9
#define intmin -1e9
#define llongmax 1e18
#define llongmin -1e18
#define memo(a, val) memset((a), (val), sizeof((a)))

using namespace std;
using namespace std::chrono;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;

// int dx[] = {1,-1,0,0} , dy[] = {0,0,1,-1};                         // 4 Direction
// int dx[] = {1,-1,0,0,1,1,-1,-1} , dy[] = {0,0,1,-1,1,-1,1,-1};     // 8 Direction
// int dx[] = {1,-1,1,-1,2,2,-2,-2} , dy[] = {2,2,-2,-2,1,-1,1,-1};   // Knight Direction
// int dx[] = {2,-2,1,1,-1,-1} , dy[] = {0,0,1,-1,1,-1};              // Hexagonal Direction

void fastio() {
    if (fopen(file".inp", "r")) {
        freopen(file".inp", "r", stdin);
        freopen(file".out", "w", stdout);
        freopen(file".debug", "w", stderr);
    }        
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);  
}

template<typename T1, typename T2> bool mini(T1 &a, T2 b)
    {if(a>b) a=b; else return 0; return 1;}
template<typename T1, typename T2> bool maxi(T1 &a, T2 b)
    {if(a<b) a=b; else return 0; return 1;}
/*-----------------------------*/

const int maxn = 3007;
int n, m, a[maxn][maxn], b[2][maxn][maxn];

void process() {
    cin >> n >> m;
    FOR(i, 1, n) FOR(j, 1, m) {
        char x; cin >> x;
        if (x == 'J') a[i][j] = 1;
        else if (x == 'O') a[i][j] = 2;
        else a[i][j] = 3;
    }

    FORD(i, n, 1) FORD(j, m, 1) {
        b[0][i][j] = b[0][i + 1][j] + b[0][i][j + 1] - b[0][i + 1][j + 1];
        b[1][i][j] = b[1][i + 1][j] + b[1][i][j + 1] - b[1][i + 1][j + 1];
        if (a[i][j] == 2) b[0][i][j]++;
        else if (a[i][j] == 3) b[1][i][j]++;
    }

    // cout << "b[0]" __ ;
    // FOR(i, 1, n) FOR(j, 1, m) 
    //     cout << b[0][i][j] << " \n"[j == m];
    // cout << "b[1]" __ ;
    // FOR(i, 1, n) FOR(j, 1, m) 
    //     cout << b[1][i][j] << " \n"[j == m];

    int ans = 0;
    FOR(i, 1, n) FOR(j, 1, m) if (a[i][j] == 1) {
        ans += (b[0][i][j + 1] - b[0][i + 1][j + 1]) * (b[1][i + 1][j] - b[1][i + 1][j + 1]);
    }

    cout << ans;
}



/*-----------------------------*/
______________TgX______________ {
    auto start = high_resolution_clock::now();
    fastio();
    process();
    auto stop = high_resolution_clock::now();
    auto duration = duration_cast<microseconds>(stop - start);
    cerr << "Time: " << duration.count() << " ms" << endl;  
}


/*==============================+
|INPUT                          |
--------------------------------|

================================+
|OUTPUT                         |
--------------------------------|

===============================*/

Compilation message

joi2019_ho_t1.cpp:41:41: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   41 | #define ______________TgX______________ main()
      |                                         ^~~~
joi2019_ho_t1.cpp:118:1: note: in expansion of macro '______________TgX______________'
  118 | ______________TgX______________ {
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
joi2019_ho_t1.cpp: In function 'void fastio()':
joi2019_ho_t1.cpp:67:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   67 |         freopen(file".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
joi2019_ho_t1.cpp:68:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   68 |         freopen(file".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
joi2019_ho_t1.cpp:69:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   69 |         freopen(file".debug", "w", stderr);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 436 KB Output is correct
5 Correct 1 ms 1884 KB Output is correct
6 Correct 1 ms 1888 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 1 ms 1884 KB Output is correct
9 Correct 1 ms 1884 KB Output is correct
10 Correct 1 ms 1628 KB Output is correct
11 Correct 1 ms 1880 KB Output is correct
12 Correct 1 ms 1884 KB Output is correct
13 Correct 1 ms 1628 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 436 KB Output is correct
5 Correct 1 ms 1884 KB Output is correct
6 Correct 1 ms 1888 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 1 ms 1884 KB Output is correct
9 Correct 1 ms 1884 KB Output is correct
10 Correct 1 ms 1628 KB Output is correct
11 Correct 1 ms 1880 KB Output is correct
12 Correct 1 ms 1884 KB Output is correct
13 Correct 1 ms 1628 KB Output is correct
14 Correct 9 ms 11100 KB Output is correct
15 Correct 2 ms 5472 KB Output is correct
16 Correct 4 ms 6748 KB Output is correct
17 Correct 0 ms 608 KB Output is correct
18 Correct 13 ms 12636 KB Output is correct
19 Correct 9 ms 12380 KB Output is correct
20 Correct 7 ms 12380 KB Output is correct
21 Correct 12 ms 12636 KB Output is correct
22 Correct 7 ms 12376 KB Output is correct
23 Correct 7 ms 12380 KB Output is correct
24 Correct 11 ms 12496 KB Output is correct
25 Correct 7 ms 12380 KB Output is correct
26 Correct 8 ms 12380 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 436 KB Output is correct
5 Correct 1 ms 1884 KB Output is correct
6 Correct 1 ms 1888 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 1 ms 1884 KB Output is correct
9 Correct 1 ms 1884 KB Output is correct
10 Correct 1 ms 1628 KB Output is correct
11 Correct 1 ms 1880 KB Output is correct
12 Correct 1 ms 1884 KB Output is correct
13 Correct 1 ms 1628 KB Output is correct
14 Correct 9 ms 11100 KB Output is correct
15 Correct 2 ms 5472 KB Output is correct
16 Correct 4 ms 6748 KB Output is correct
17 Correct 0 ms 608 KB Output is correct
18 Correct 13 ms 12636 KB Output is correct
19 Correct 9 ms 12380 KB Output is correct
20 Correct 7 ms 12380 KB Output is correct
21 Correct 12 ms 12636 KB Output is correct
22 Correct 7 ms 12376 KB Output is correct
23 Correct 7 ms 12380 KB Output is correct
24 Correct 11 ms 12496 KB Output is correct
25 Correct 7 ms 12380 KB Output is correct
26 Correct 8 ms 12380 KB Output is correct
27 Correct 299 ms 220500 KB Output is correct
28 Correct 12 ms 29016 KB Output is correct
29 Correct 14 ms 19292 KB Output is correct
30 Correct 1 ms 1068 KB Output is correct
31 Correct 220 ms 182952 KB Output is correct
32 Correct 179 ms 221008 KB Output is correct
33 Correct 153 ms 220340 KB Output is correct
34 Correct 269 ms 212092 KB Output is correct
35 Correct 170 ms 221120 KB Output is correct
36 Correct 156 ms 220244 KB Output is correct
37 Correct 288 ms 221012 KB Output is correct
38 Correct 145 ms 182096 KB Output is correct
39 Correct 116 ms 182352 KB Output is correct