제출 #383637

#제출 시각아이디문제언어결과실행 시간메모리
383637Keshi미술 수업 (IOI13_artclass)C++17
87 / 100
92 ms4332 KiB
//In the name of God #include <bits/stdc++.h> //#include <fstream> #include "artclass.h" using namespace std; typedef int ll; typedef pair<ll, ll> pll; const ll maxn = 500; const ll mod = 1e9 + 7; const ll inf = 1e9; #define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define file_io freopen("input.txt", "r+", stdin);freopen("output.txt", "w+", stdout); #define pb push_back #define Mp make_pair #define F first #define S second #define Sz(x) ll((x).size()) #define all(x) (x).begin(), (x).end() ll diff(ll r1, ll g1, ll b1, ll r2, ll g2, ll b2){ return (abs(r1 - r2) + abs(g1 - g2) + abs(b1 - b2)); } ll a[maxn * maxn]; ll val1(int h, int w, int r[500][500], int g[500][500], int b[500][500]){ for(ll i = 1; i < h; i++){ for(ll j = 1; j < w; j++){ a[i * w + j] = diff(r[i][j], g[i][j], b[i][j], r[i - 1][j], g[i - 1][j], b[i - 1][j]); } } sort(a, a + (h - 1) * (w - 1)); return a[(h - 1) * (w - 1) * 70 / 100]; } long double val2(int h, int w, int r[500][500], int g[500][500], int b[500][500]){ ll t = 0; for(ll i = 1; i < h; i++){ for(ll j = 1; j < w; j++){ if(diff(r[i][j], g[i][j], b[i][j], r[i - 1][j], g[i - 1][j], b[i - 1][j]) > 30 || diff(r[i][j], g[i][j], b[i][j], r[i][j - 1], g[i][j - 1], b[i][j - 1]) > 30){ t++; } } } return (1.0 * t) / (1.0 * w * h) * 100; } long double val3(int h, int w, int r[500][500], int g[500][500], int b[500][500]){ ll t = 0; for(ll i = 0; i < h; i++){ for(ll j = 0; j < w; j++){ t += g[i][j] - r[i][j] - b[i][j] * 2 / 3; } } return (1.0 * t) / (1.0 * w * h); } int style(int h, int w, int r[500][500], int g[500][500], int b[500][500]) { ll x1 = val1(h, w, r, g, b); long double x2 = val2(h, w, r, g, b); if(x2 < 5) return 4; if(x1 > 85 || x2 > 70) return 3; if(val3(h, w, r, g, b) > -70) return 2; if(x2 < 35) return 1; return 2; } /*int main(){ //fast_io; ll h, w, r[maxn][maxn], g[maxn][maxn], b[maxn][maxn]; for(char i = '1'; i <= '4'; i++){ for(char j = '1'; j <= '9'; j++){ string s = "images/style-"; s += i; s += "/style-"; s += i; s += "-"; s += j; s += ".txt"; ifstream mf(s); mf >> h >> w; for(ll x = 0; x < h; x++){ for(ll y = 0; y < w; y++){ mf >> r[x][y] >> g[x][y] >> b[x][y]; } } cout << i << '-' << j << " -> " << style(h, w, r, g, b) << "\n";//val1(h, w, r, g, b) << " " << val3(h, w, r, g, b) << "\n"; } cout << "------------\n"; } return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...