fork download
  1. #!/usr/bin/env python3
  2. # split_json_ideone.py — читает JSON из stdin и выводит части в stdout.
  3.  
  4. import json
  5. import math
  6. import sys
  7.  
  8.  
  9. def main() -> None:
  10. # Первая строка stdin — количество частей
  11. try:
  12. parts = int(sys.stdin.readline().strip())
  13. except ValueError:
  14. print("Ошибка: первая строка должна быть целым числом — количеством частей.")
  15. return
  16.  
  17. # Остальной stdin — собственно JSON
  18. try:
  19. data = json.load(sys.stdin)
  20. except json.JSONDecodeError as e:
  21. print(f"Ошибка JSON: {e}")
  22. return
  23.  
  24. if not isinstance(data, list):
  25. print("Ошибка: корневой элемент JSON должен быть массивом (списком).")
  26. return
  27.  
  28. chunk_size = math.ceil(len(data) / parts)
  29. for i in range(parts):
  30. chunk = data[i * chunk_size : (i + 1) * chunk_size]
  31. print(f"=== Часть {i + 1}/{parts} ===")
  32. print(json.dumps(chunk, ensure_ascii=False, indent=2))
  33.  
  34.  
  35. if __name__ == "__main__":
  36. main()
  37.  
Success #stdin #stdout 0.19s 15532KB
stdin
/*  Berechnung des Hamming-Abstandes zwischen zwei 128-Bit Werten in 	*/
/*	einer Textdatei. 													*/
/*  Die Werte müssen auf einer separaten Zeile gespeichert sein			*/
/* 																		*/
/*	Erstellt: 17.5.2010													*/
/*  Autor: Thomas Scheffler												*/

#include <stdio.h>
#include <stdlib.h>

#define ARRAY_SIZE 32

unsigned Hamdist(unsigned x, unsigned y)
{
  unsigned dist = 0, val = x ^ y;
 
  // Count the number of set bits
  while(val)
  {
    ++dist; 
    val &= val - 1;
  }
 
  return dist;
}



int main (void)
{
	char hex;
	int i;
	int a[ARRAY_SIZE];
	int b[ARRAY_SIZE];
	int hamDist = 0;
	FILE* fp;
	
	//Arrays mit 0 initialisieren
	for (i = 0; i < ARRAY_SIZE; ++i)
	{
  		a[i] = 0;
  		b[i] = 0;
	}

	
	fp = fopen("hex.txt","r");
	if (fp == NULL) 
	{
		printf("Die Datei hex.txt wurde nicht gefunden!");
		exit(EXIT_FAILURE);
	}

	i=0;
	printf("1.Zeile einlesen.\n");

 	while((hex=fgetc(fp))!='\n' && hex != EOF)
    {
        a[i]=strtol(&hex,0,16);
		i++;
    }
	i=0;
	printf("2.Zeile einlesen.\n");

 	while((hex=fgetc(fp))!='\n' && hex != EOF)
    {
    	b[i]=strtol(&hex,0,16);
        i++;
    }
	fclose(fp);

	printf("Hamming-Abweichung pro Nibble:\n");
	for (i = 0; i < ARRAY_SIZE; ++i)
	{
		printf ("%i\t%i\t%i\n",a[i],b[i],Hamdist(a[i],b[i]));
		hamDist += Hamdist(a[i],b[i]);
	}
	printf ("\nHamming-Abweichung der Hash-Werte:%d\n",hamDist);
}

stdout
Ошибка: первая строка должна быть целым числом — количеством частей.