Submission #486113


Source Code Expand

Copy
// Template {{{
#include <bits/stdc++.h>
#define REP(i,n) for(int i=0; i<(int)(n); ++i)
using namespace std;
typedef long long LL;

#ifdef LOCAL
#include "contest.h"
#else
#define dump(x) 
#endif

class range {
    struct Iterator {
        int val, inc;
        int operator*() {return val;}
        bool operator!=(Iterator& rhs) {return val < rhs.val;}
        void operator++() {val += inc;}
    };
    Iterator i, n;
    public:
    range(int e) : i({0, 1}), n({e, 1}) {}
    range(int b, int e) : i({b, 1}), n({e, 1}) {}
    range(int b, int e, int inc) : i({b, inc}), n({e, inc}) {}
    Iterator& begin() {return i;}
    Iterator& end() {return n;}
};

const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
inline bool valid(int x, int w) { return 0 <= x && x < w; }

void iostream_init() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.setf(ios::fixed);
    cout.precision(12);
}
//}}}

int main(){
    iostream_init();
    int L, s;
    cin >> L >> s;
    assert(L <= 10000);
    int ans = 0;
    for(int c = 1; c <= L; c++) {
        int buf = c * c - s * s;
        for(int a = 1; ; a++) {
            const int aa = a*a;
            const int bb = buf - aa;
            if(bb <= 0) break;
            if(bb < aa) break;
            int b = sqrt(bb) + 0.5;
            if(a + b + c > L) break;
            if(b * b == bb) {
                if(a + b > c && b + c > a && c + a > b) {
                    if(__gcd(__gcd(a, b), c) == 1) {
                        // cout << a << " " << b << " " << c << endl;
                        ans += 1;
                    }
                }
            }
        }
    }
    cout << ans << endl;
    return 0;
}

/* vim:set foldmethod=marker: */

Submission Info

Submission Time
Task D - ほぼピタゴラスの三角形
User ichyo
Language C++11 (GCC 4.9.2)
Score 60
Code Size 1789 Byte
Status
Exec Time 308 ms
Memory 932 KB

Test Cases

Set Name Score / Max Score Test Cases
small 60 / 60 00_example_1.txt, 00_example_2.txt, 03_small_00.txt, 03_small_01.txt, 03_small_02.txt, 03_small_03.txt, 03_small_04.txt, 03_small_05.txt, 03_small_06.txt, 03_small_07.txt, 03_small_08.txt, 03_small_09.txt, 03_small_10.txt, 03_small_11.txt, 03_small_12.txt, 03_small_13.txt, 03_small_14.txt, 03_small_15.txt, 03_small_16.txt, 03_small_17.txt, 03_small_18.txt, 03_small_19.txt, 03_small_20.txt, 03_small_21.txt, 03_small_22.txt, 03_small_23.txt, 03_small_24.txt, 03_small_25.txt, 03_small_26.txt, 03_small_27.txt, 03_small_28.txt, 03_small_29.txt, 03_small_30.txt, 03_small_31.txt, 03_small_32.txt, 03_small_33.txt, 03_small_34.txt, 03_small_35.txt, 03_small_36.txt, 03_small_37.txt, 03_small_38.txt, 03_small_39.txt, 03_small_40.txt, 03_small_41.txt, 03_small_42.txt, 03_small_43.txt, 03_small_44.txt, 03_small_45.txt, 03_small_46.txt, 03_small_47.txt, 03_small_48.txt, 03_small_49.txt, 03_small_50.txt, 03_small_51.txt, 03_small_52.txt, 03_small_53.txt, 03_small_54.txt, 03_small_55.txt, 03_small_56.txt, 03_small_57.txt, 03_small_58.txt, 03_small_59.txt, 03_small_60.txt, 03_small_61.txt, 03_small_62.txt, 03_small_63.txt, 03_small_64.txt, 03_small_65.txt, 03_small_66.txt, 03_small_67.txt, 03_small_68.txt, 03_small_69.txt, 03_small_70.txt, 03_small_71.txt, 03_small_72.txt, 03_small_73.txt, 03_small_74.txt, 03_small_75.txt, 03_small_76.txt, 03_small_77.txt, 03_small_78.txt, 03_small_79.txt, 03_small_80.txt, 03_small_81.txt, 03_small_82.txt, 03_small_83.txt, 03_small_84.txt, 03_small_85.txt, 03_small_86.txt, 03_small_87.txt, 03_small_88.txt, 03_small_89.txt, 03_small_90.txt, 03_small_91.txt, 03_small_92.txt, 03_small_93.txt, 03_small_94.txt, 03_small_95.txt, 03_small_96.txt, 03_small_97.txt, 03_small_98.txt, 03_small_99.txt, 05_small_random_1.txt, 05_small_random_10.txt, 05_small_random_11.txt, 05_small_random_12.txt, 05_small_random_13.txt, 05_small_random_14.txt, 05_small_random_15.txt, 05_small_random_16.txt, 05_small_random_17.txt, 05_small_random_18.txt, 05_small_random_19.txt, 05_small_random_2.txt, 05_small_random_20.txt, 05_small_random_21.txt, 05_small_random_22.txt, 05_small_random_23.txt, 05_small_random_24.txt, 05_small_random_25.txt, 05_small_random_26.txt, 05_small_random_27.txt, 05_small_random_28.txt, 05_small_random_29.txt, 05_small_random_3.txt, 05_small_random_30.txt, 05_small_random_4.txt, 05_small_random_5.txt, 05_small_random_6.txt, 05_small_random_7.txt, 05_small_random_8.txt, 05_small_random_9.txt, 08_manual_0.txt, 08_manual_2.txt, 08_manual_3.txt
All 0 / 140 00_example_1.txt, 00_example_2.txt, 03_small_00.txt, 03_small_01.txt, 03_small_02.txt, 03_small_03.txt, 03_small_04.txt, 03_small_05.txt, 03_small_06.txt, 03_small_07.txt, 03_small_08.txt, 03_small_09.txt, 03_small_10.txt, 03_small_11.txt, 03_small_12.txt, 03_small_13.txt, 03_small_14.txt, 03_small_15.txt, 03_small_16.txt, 03_small_17.txt, 03_small_18.txt, 03_small_19.txt, 03_small_20.txt, 03_small_21.txt, 03_small_22.txt, 03_small_23.txt, 03_small_24.txt, 03_small_25.txt, 03_small_26.txt, 03_small_27.txt, 03_small_28.txt, 03_small_29.txt, 03_small_30.txt, 03_small_31.txt, 03_small_32.txt, 03_small_33.txt, 03_small_34.txt, 03_small_35.txt, 03_small_36.txt, 03_small_37.txt, 03_small_38.txt, 03_small_39.txt, 03_small_40.txt, 03_small_41.txt, 03_small_42.txt, 03_small_43.txt, 03_small_44.txt, 03_small_45.txt, 03_small_46.txt, 03_small_47.txt, 03_small_48.txt, 03_small_49.txt, 03_small_50.txt, 03_small_51.txt, 03_small_52.txt, 03_small_53.txt, 03_small_54.txt, 03_small_55.txt, 03_small_56.txt, 03_small_57.txt, 03_small_58.txt, 03_small_59.txt, 03_small_60.txt, 03_small_61.txt, 03_small_62.txt, 03_small_63.txt, 03_small_64.txt, 03_small_65.txt, 03_small_66.txt, 03_small_67.txt, 03_small_68.txt, 03_small_69.txt, 03_small_70.txt, 03_small_71.txt, 03_small_72.txt, 03_small_73.txt, 03_small_74.txt, 03_small_75.txt, 03_small_76.txt, 03_small_77.txt, 03_small_78.txt, 03_small_79.txt, 03_small_80.txt, 03_small_81.txt, 03_small_82.txt, 03_small_83.txt, 03_small_84.txt, 03_small_85.txt, 03_small_86.txt, 03_small_87.txt, 03_small_88.txt, 03_small_89.txt, 03_small_90.txt, 03_small_91.txt, 03_small_92.txt, 03_small_93.txt, 03_small_94.txt, 03_small_95.txt, 03_small_96.txt, 03_small_97.txt, 03_small_98.txt, 03_small_99.txt, 05_small_random_1.txt, 05_small_random_10.txt, 05_small_random_11.txt, 05_small_random_12.txt, 05_small_random_13.txt, 05_small_random_14.txt, 05_small_random_15.txt, 05_small_random_16.txt, 05_small_random_17.txt, 05_small_random_18.txt, 05_small_random_19.txt, 05_small_random_2.txt, 05_small_random_20.txt, 05_small_random_21.txt, 05_small_random_22.txt, 05_small_random_23.txt, 05_small_random_24.txt, 05_small_random_25.txt, 05_small_random_26.txt, 05_small_random_27.txt, 05_small_random_28.txt, 05_small_random_29.txt, 05_small_random_3.txt, 05_small_random_30.txt, 05_small_random_4.txt, 05_small_random_5.txt, 05_small_random_6.txt, 05_small_random_7.txt, 05_small_random_8.txt, 05_small_random_9.txt, 08_manual_0.txt, 08_manual_2.txt, 08_manual_3.txt, 10_max_01.txt, 10_max_02.txt, 10_max_03.txt, 10_max_04.txt, 10_max_05.txt, 10_max_06.txt, 10_max_07.txt, 10_max_08.txt, 10_max_09.txt, 10_max_10.txt, 10_max_41.txt, 10_max_42.txt, 10_max_43.txt, 10_max_44.txt, 10_max_45.txt, 10_max_46.txt, 10_max_47.txt, 10_max_48.txt, 10_max_49.txt, 10_max_50.txt, 11_large_00.txt, 11_large_01.txt, 11_large_02.txt, 11_large_03.txt, 11_large_04.txt, 11_large_05.txt, 11_large_06.txt, 11_large_07.txt, 11_large_08.txt, 11_large_09.txt, 20_manual_1.txt, 20_manual_10.txt, 20_manual_11.txt, 20_manual_12.txt, 20_manual_13.txt, 20_manual_4.txt, 20_manual_5.txt, 20_manual_6.txt, 20_manual_7.txt, 20_manual_8.txt, 20_manual_9.txt
Case Name Status Exec Time Memory
00_example_1.txt 27 ms 928 KB
00_example_2.txt 23 ms 924 KB
03_small_00.txt 23 ms 924 KB
03_small_01.txt 25 ms 924 KB
03_small_02.txt 24 ms 800 KB
03_small_03.txt 23 ms 928 KB
03_small_04.txt 23 ms 928 KB
03_small_05.txt 24 ms 824 KB
03_small_06.txt 23 ms 800 KB
03_small_07.txt 24 ms 844 KB
03_small_08.txt 23 ms 804 KB
03_small_09.txt 25 ms 924 KB
03_small_10.txt 26 ms 812 KB
03_small_11.txt 26 ms 800 KB
03_small_12.txt 26 ms 804 KB
03_small_13.txt 24 ms 800 KB
03_small_14.txt 24 ms 792 KB
03_small_15.txt 26 ms 924 KB
03_small_16.txt 24 ms 800 KB
03_small_17.txt 27 ms 808 KB
03_small_18.txt 24 ms 800 KB
03_small_19.txt 25 ms 816 KB
03_small_20.txt 26 ms 808 KB
03_small_21.txt 24 ms 804 KB
03_small_22.txt 26 ms 928 KB
03_small_23.txt 24 ms 792 KB
03_small_24.txt 26 ms 804 KB
03_small_25.txt 26 ms 800 KB
03_small_26.txt 28 ms 816 KB
03_small_27.txt 26 ms 924 KB
03_small_28.txt 29 ms 824 KB
03_small_29.txt 27 ms 792 KB
03_small_30.txt 25 ms 920 KB
03_small_31.txt 26 ms 920 KB
03_small_32.txt 28 ms 912 KB
03_small_33.txt 25 ms 916 KB
03_small_34.txt 25 ms 804 KB
03_small_35.txt 25 ms 804 KB
03_small_36.txt 27 ms 924 KB
03_small_37.txt 27 ms 792 KB
03_small_38.txt 25 ms 916 KB
03_small_39.txt 26 ms 732 KB
03_small_40.txt 27 ms 916 KB
03_small_41.txt 27 ms 792 KB
03_small_42.txt 27 ms 804 KB
03_small_43.txt 27 ms 924 KB
03_small_44.txt 26 ms 792 KB
03_small_45.txt 27 ms 792 KB
03_small_46.txt 27 ms 920 KB
03_small_47.txt 27 ms 796 KB
03_small_48.txt 26 ms 924 KB
03_small_49.txt 27 ms 800 KB
03_small_50.txt 25 ms 920 KB
03_small_51.txt 28 ms 916 KB
03_small_52.txt 28 ms 928 KB
03_small_53.txt 28 ms 924 KB
03_small_54.txt 27 ms 804 KB
03_small_55.txt 27 ms 920 KB
03_small_56.txt 27 ms 796 KB
03_small_57.txt 28 ms 920 KB
03_small_58.txt 27 ms 920 KB
03_small_59.txt 27 ms 920 KB
03_small_60.txt 27 ms 920 KB
03_small_61.txt 26 ms 924 KB
03_small_62.txt 25 ms 920 KB
03_small_63.txt 26 ms 920 KB
03_small_64.txt 26 ms 924 KB
03_small_65.txt 25 ms 916 KB
03_small_66.txt 25 ms 792 KB
03_small_67.txt 25 ms 788 KB
03_small_68.txt 26 ms 916 KB
03_small_69.txt 28 ms 916 KB
03_small_70.txt 25 ms 928 KB
03_small_71.txt 25 ms 800 KB
03_small_72.txt 26 ms 804 KB
03_small_73.txt 26 ms 804 KB
03_small_74.txt 26 ms 928 KB
03_small_75.txt 26 ms 800 KB
03_small_76.txt 27 ms 844 KB
03_small_77.txt 24 ms 928 KB
03_small_78.txt 26 ms 804 KB
03_small_79.txt 27 ms 808 KB
03_small_80.txt 25 ms 924 KB
03_small_81.txt 26 ms 808 KB
03_small_82.txt 26 ms 916 KB
03_small_83.txt 25 ms 928 KB
03_small_84.txt 26 ms 808 KB
03_small_85.txt 27 ms 804 KB
03_small_86.txt 27 ms 808 KB
03_small_87.txt 26 ms 808 KB
03_small_88.txt 26 ms 800 KB
03_small_89.txt 26 ms 808 KB
03_small_90.txt 25 ms 932 KB
03_small_91.txt 26 ms 800 KB
03_small_92.txt 25 ms 928 KB
03_small_93.txt 26 ms 920 KB
03_small_94.txt 26 ms 800 KB
03_small_95.txt 26 ms 804 KB
03_small_96.txt 25 ms 924 KB
03_small_97.txt 26 ms 804 KB
03_small_98.txt 25 ms 924 KB
03_small_99.txt 26 ms 804 KB
05_small_random_1.txt 27 ms 932 KB
05_small_random_10.txt 29 ms 808 KB
05_small_random_11.txt 31 ms 800 KB
05_small_random_12.txt 120 ms 804 KB
05_small_random_13.txt 41 ms 804 KB
05_small_random_14.txt 75 ms 800 KB
05_small_random_15.txt 67 ms 804 KB
05_small_random_16.txt 91 ms 804 KB
05_small_random_17.txt 108 ms 844 KB
05_small_random_18.txt 72 ms 916 KB
05_small_random_19.txt 71 ms 920 KB
05_small_random_2.txt 27 ms 804 KB
05_small_random_20.txt 30 ms 916 KB
05_small_random_21.txt 118 ms 916 KB
05_small_random_22.txt 104 ms 912 KB
05_small_random_23.txt 50 ms 796 KB
05_small_random_24.txt 67 ms 796 KB
05_small_random_25.txt 75 ms 796 KB
05_small_random_26.txt 33 ms 916 KB
05_small_random_27.txt 26 ms 916 KB
05_small_random_28.txt 55 ms 792 KB
05_small_random_29.txt 97 ms 924 KB
05_small_random_3.txt 53 ms 920 KB
05_small_random_30.txt 48 ms 800 KB
05_small_random_4.txt 110 ms 728 KB
05_small_random_5.txt 59 ms 924 KB
05_small_random_6.txt 37 ms 916 KB
05_small_random_7.txt 34 ms 912 KB
05_small_random_8.txt 74 ms 788 KB
05_small_random_9.txt 63 ms 668 KB
08_manual_0.txt 122 ms 920 KB
08_manual_2.txt 25 ms 796 KB
08_manual_3.txt 121 ms 924 KB
10_max_01.txt 293 ms 796 KB
10_max_02.txt 279 ms 808 KB
10_max_03.txt 279 ms 748 KB
10_max_04.txt 282 ms 928 KB
10_max_05.txt 281 ms 804 KB
10_max_06.txt 281 ms 800 KB
10_max_07.txt 291 ms 808 KB
10_max_08.txt 285 ms 816 KB
10_max_09.txt 284 ms 804 KB
10_max_10.txt 279 ms 932 KB
10_max_41.txt 284 ms 932 KB
10_max_42.txt 286 ms 812 KB
10_max_43.txt 277 ms 924 KB
10_max_44.txt 282 ms 916 KB
10_max_45.txt 278 ms 812 KB
10_max_46.txt 272 ms 804 KB
10_max_47.txt 273 ms 796 KB
10_max_48.txt 275 ms 792 KB
10_max_49.txt 277 ms 924 KB
10_max_50.txt 279 ms 804 KB
11_large_00.txt 273 ms 796 KB
11_large_01.txt 275 ms 800 KB
11_large_02.txt 279 ms 796 KB
11_large_03.txt 286 ms 796 KB
11_large_04.txt 308 ms 832 KB
11_large_05.txt 285 ms 928 KB
11_large_06.txt 283 ms 920 KB
11_large_07.txt 287 ms 800 KB
11_large_08.txt 286 ms 932 KB
11_large_09.txt 284 ms 800 KB
20_manual_1.txt 285 ms 920 KB
20_manual_10.txt 285 ms 800 KB
20_manual_11.txt 285 ms 920 KB
20_manual_12.txt 284 ms 736 KB
20_manual_13.txt 284 ms 800 KB
20_manual_4.txt 283 ms 736 KB
20_manual_5.txt 282 ms 804 KB
20_manual_6.txt 286 ms 796 KB
20_manual_7.txt 283 ms 804 KB
20_manual_8.txt 284 ms 804 KB
20_manual_9.txt 278 ms 928 KB