55 lines
1.0 KiB
Plaintext
55 lines
1.0 KiB
Plaintext
#include "sylib.h"
|
|
int matrix[20000000];
|
|
int a[100000];
|
|
|
|
int transpose(int n, int matrix[], int rowsize)
|
|
{
|
|
int colsize = n / rowsize;
|
|
int i = 0;
|
|
int j = 0;
|
|
while (i < colsize) {
|
|
j = 0;
|
|
while (j < rowsize) {
|
|
if (i < j) {
|
|
j = j + 1;
|
|
continue;
|
|
}
|
|
int curr = matrix[i * rowsize + j];
|
|
matrix[j * colsize + i] = matrix[i * rowsize + j];
|
|
matrix[i * rowsize + j] = curr;
|
|
j = j + 1;
|
|
}
|
|
i = i + 1;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int n = getint();
|
|
int len = getarray(a);
|
|
starttime();
|
|
int i = 0;
|
|
while (i < n) {
|
|
matrix[i] = i;
|
|
i = i + 1;
|
|
}
|
|
i = 0;
|
|
while (i < len) {
|
|
transpose(n, matrix, a[i]);
|
|
i = i + 1;
|
|
}
|
|
|
|
int ans = 0;
|
|
i = 0;
|
|
while (i < len) {
|
|
ans = ans + i * i * matrix[i];
|
|
i = i + 1;
|
|
}
|
|
if (ans < 0)
|
|
ans = -ans;
|
|
stoptime();
|
|
putint(ans);
|
|
putch(10);
|
|
return 0;
|
|
} |