 Non capisco perchè mi dà 70/100 non mi risolve gli ultimi 3 testcase del subtask4 .
Mi aiutereste ad arrivare a 100 dicendomi cosa sbaglio.Graie in anticipo.

``````/*
* This template is valid both in C and in C++,
* so you can expand it with code from both languages.
* NOTE: it is recommended to use this even if you don't
* understand the following code.
*/

#include <stdio.h>
#include <assert.h>

/*
* This template is valid both in C and in C++,
* so you can expand it with code from both languages.
* NOTE: it is recommended to use this even if you don't
* understand the following code.
*/

#include <stdio.h>
#include <assert.h>

// input data
int A, B;

int main() {
//  uncomment the following lines if you want to read/write from files
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);

assert(4 == scanf("%d.%d.%d.%d", &A, &A, &A, &A));
assert(4 == scanf("%d.%d.%d.%d", &B, &B, &B, &B));

// at this point, the arrays A and B contain four elements each with the individual IP octects
// for example: 192.168.1.1 creates an array [192, 168, 1, 1] with 192 at index 0

long long result = ((B*256*256*256)+(B*256*256)+(B*256)+B) - ((A*256*256*256)+(A*256*256)+(A*256)+A) + 1;

printf("%lld\n", result);  // print the result
return 0;
}
``````

Ciao, il problema è nella dichiarazione degli array, infatti quando moltiplichi B e A per 256³ il risultato non rientra negli int e la moltiplicazione può restituire un numero errato. Per evitare ciò dovresti dichiarare entrambi gli array come long long.

1 Mi Piace

grazie mille. ho usato 'allegato e di solito è giusto quindi non ho controllato se superava o no il limite.
grazie mille

1 Mi Piace

L’allegato può anche andare bene, basta solo che nella riga che calcola result venga fatto il cast di B e A a long long e va.

long long result = (((long long)B* 256* 256*256)+(B*256 * 256)+(B * 256)+B) - (((long long)A * 256 * 256 *256)+(A*256 *256)+(A*256)+A) + 1;