import numpy as np
import pennylane as qml
import random
import sys
import time
import qulacs

if len(sys.argv) != 2:
    print("python benchmark.py ")
    sys.exit(1)

N = int(sys.argv[1])

regs = list(range(N))
random.shuffle(regs)
dev = qml.device('qulacs.simulator', wires=N)

@qml.qnode(dev)
def ghz_circuit():
    qml.Hadamard(wires=regs[0])
    for i in range(N-1):
        qml.CNOT(wires=[regs[i],regs[i+1]])
    return qml.expval(qml.PauliZ(0))

start = time.time()
#PROFILE_BEGIN
result = ghz_circuit()
#PROFILE_END
end = time.time()
print("time =",(end-start))