编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#5847 #1001. A. 神秘谜题 Compile Error 0 0 ms 0 K C++ / 1.6 K 钱学森班83-邵杰 2019-06-28 15:12:10
显示原始代码
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <cmath>
#include <ctime>
int N;
long long int num[400000] = { 1, 1 };
long long int prime[400000] = { 0 };
long long int num1[400000] = { 1, 1 };
int number = 0;
void kuaisushaifa();
using namespace std;
int main() {
    cin.sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    N = 2000000 * n;
    kuaisushaifa();
    int *arr = new int[n];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    int temp;
    int x = 0;
    int y = 0;
    for (int i = 0; i < pow(2, n); i++) {
        temp = 0;
        int k = i;
        int kk = 0;
        while (k > 0) {
            if (k & 1) {
                temp += arr[kk];
            }
            kk++;
            k >>= 1;
        }
        if (num[temp] != 1 && temp > 1) {
            x++;
            if (num1[temp] != -1) {
                y++;
                num1[temp] = -1;
            }
        }
    }
    cout << x << endl << y;
    delete[] arr;
    system("pause");
    return 0;
}
void kuaisushaifa()  //快速筛法求素数
{
    for (int i = 2; i <= N; ++i) {
        if (!num[i])
            prime[number++] = i;
        for (int j = 0; j < number && i * prime[j] <= N; j++) {
            num[i * prime[j]] = 1;  //把所有合数标记为 1
            num1[i * prime[j]] = 1;
            if (!(i % prime[j]))  // *为保证不重复筛选*
                break;
        }
    }
}

编译信息

Your source code compiled to 6412361 bytes which is too big, too thick, too long for us..